如果要在DataGrid的每一个行都加上一些属性,我想是可以这样的:
在DataGrid1_ItemDataBound这个事件里加上 
if (e.Item.ItemType == ListItemType.Item) 

e.Item.Attributes.Add("onclick", "javascript:alert('sdfsss');"); 

但是如果要在DataList每一个Item都加上一些属性,这样做
在DataList1_ItemDataBound这个事件里加上 
if (e.Item.ItemType == ListItemType.Item) 

e.Item.Attributes.Add("onclick", "javascript:alert('sdfsss');"); 

却没有任何作用。
谁有好的解决办法吗?

解决方案 »

  1.   

    <asp:datalist id="DataList1"  runat="server">
    <ItemTemplate>
    <div id="div1" runat="server"><FONT face="宋体">aaaa</FONT>
    <asp:textbox id="txt" Runat="server">bbbb</asp:textbox></div>
    </ItemTemplate>
    </asp:datalist>==============================================
    private void DataList1_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
    {
    System.Web.UI.HtmlControls.HtmlGenericControl div = (System.Web.UI.HtmlControls.HtmlGenericControl)e.Item.FindControl("div1");
    div.Attributes.Add("onclick", "javascript:alert('sdfsss');"); 
    }
      

  2.   

    两个事件是不一样的
    你可以在绑定完数据后
    for()
    {
    DataList1.Item[i].Attributes.Add("onclick", "javascript:alert('sdfsss');"); }
      

  3.   

    Eddie005(♂) №.零零伍 (♂) ,谢谢你的回答,不过你这种和我说的不是一样的,我的意思是e.Item.Attributes.add,  而不是e.item.findcontrol("").你说的这个我知道可以这样做。
      

  4.   

    ncjcz(新手上路) ,我按照你说的做了,代码如下,可是还是不行
    this.DataList1.DataSource = dt;
    this.DataList1.DataBind();foreach (DataListItem item in this.DataList1.Items)
    {
    item.Attributes.Add("onclick", "javascript:alert('sdfsdf');");
    }
      

  5.   

    不用javascript 就可以啊
    e.Item.Attributes.Add("onclick", "alert('sdfsss');");