Net4.0---數據綁定控件(GridView ListView…)中的ClientIDRowSuffix屬性


在AspNet4中的數據綁定控件(GridView ListView…)中新增了一個ClientIDRowSuffix屬性,ClientIDRowSuffix屬性可以影響數據綁定控件內部控件的ID,ClientIDRowSuffix控件的值可以設置為數據綁定控件的數據源的任何一列。值得注意的是ClientIDRowSuffix屬性是和ClientIDMode屬性配合使用的。ClientIDMode有四種屬性值,這個在Net4.0---對HTML凈化的處理一文中有提到,下面介紹如何在數據綁定控件中使用ClientIDRowSuffix:

1 在頁面中放一個GridView控件,在控件添加一個模板列,模板列中添加一個Lable控件,ID設置為lblId,代碼如下:

 
代碼
    
    
    
< asp:GridView ID ="GridView1" runat ="server"
ClientIDRowSuffix
="UserId" ClientIDMode ="Predictable" >
< Columns >
< asp:TemplateField >
< ItemTemplate >
< asp:Label ID ="lblId" runat ="server" ></ asp:Label >
</ ItemTemplate >
</ asp:TemplateField >
</ Columns >
</ asp:GridView >

 

 
 
2 進入后台代碼視圖,添加一個User類做數據源用,在PageLoad事件中綁定GridView,代碼如下:
代碼
    
    
    
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load( object sender, EventArgs e)
{
List
< User > list = new List < User >
{
new User{UserId = 10 ,UserName = " oec2003 " },
new User{UserId = 20 ,UserName = " oec2004 " }
};
if ( ! Page.IsPostBack)
{
this .GridView1.DataSource = list;
this .GridView1.DataBind();
}
}
}
public class User
{
public int UserId { get ; set ; }
public string UserName { get ; set ; }
}

 

3 設置GridView的屬性ClientIDMode為不同值,運行程序查看源碼,觀察Lable控件的ID,如下圖:

AutoID

2010-07-30_112500

Inherit

2010-07-30_112644

 

 

Predictable

2010-07-30_112747

Static

2010-07-30_112954

 

總結

1 根據上圖看以看出當ClientIDMode值為Predictable和Inherit時,ClientIDRowSuffix的設置才起了作用,將ClientIDRowSuffix設置的UserId字段的值拼接到了Lable控件的ID屬性后。

2 在網上的一些資料表明ClientIDRowSuffix屬性要和ClientIDMode屬性一起使用,並且ClientIDMode屬性的值要設置成Predictable,但我將GridView中的ClientIDMode屬性去掉后運行,看到的源碼和設置ClientIDMode為Predictable得到的源碼一致。也就是說只設置GrieView的ClientIDRowSuffix就可以得到想要的結果。

3 ClientIDRowSuffix屬性還可以設置對應多個字段,如ClientIDRowSuffix="UserId,UserName",這樣得到的控件的ID是多個字段值的拼接。

4 在AspNet4的數據綁定控件中,只有GridView和ListView有ClientIDRowSuffix屬性。

 

出處: http://oec2003.cnblogs.com/


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com