Bonjour,

Je desire avoir une class de base pour mes template de gridview, car le code est identique sauf dans 2 methodes et je n'y arrive pas.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 
public class GridViewCheckBoxTemplate
    {
        string _ColName;
        DataControlRowType _rowType;
        int _Count;
 
        public GridViewCheckBoxTemplate(string ColName, DataControlRowType RowType)
        {
            _ColName = ColName;
            _rowType = RowType;
        }
        public GridViewCheckBoxTemplate(DataControlRowType RowType, int ArticleCount)
        {
            _rowType = RowType;
            _Count = ArticleCount;
        }
        public void InstantiateIn(System.Web.UI.Control container)
        {
            switch (_rowType)
            {
                case DataControlRowType.Header:
                    Literal lc = new Literal();
                    lc.Text = "<b>" + _ColName + "</b>";
                    container.Controls.Add(lc);
                    break;
                case DataControlRowType.DataRow:
                   Label lbl = new Label();
 
                    lbl.DataBinding += new EventHandler(this.lbl_DataBind);
                    container.Controls.Add(lbl);
 
                    break;
                    default:
                    break;
            }
        }
 
 
        private void lbl_DataBind(Object sender, EventArgs e)
        {
            Label lbl = (Label)sender;
            GridViewRow row = (GridViewRow)lbl.NamingContainer;
            lbl.Text = DataBinder.Eval(row.DataItem, _ColName).ToString();
        }
    }
Tous doit etre commu sauf private void lbl_DataBind(Object sender, EventArgs e) et case DataControlRowType.DataRow:
Label lbl = new Label();
lbl.DataBinding += new EventHandler(this.lbl_DataBind);
container.Controls.Add(lbl);


car cela depends des controls.


Auriez vous une idee ?

Merci