如果你运行你的代码,它会告诉你undefined
或什么都没有,所以有一些方法可以做到这一点,第一个也是最简单的你应该改变你cb
如下:
<asp:CheckBox ID="cb" runat="server" onclick='<%# string.Format("myCheckChanged(\"{0}\")", Eval("myid")) %>' />
第二种方式你可以这样code-behind
做ItemDataBound
:
1-将您的“DataGrid”更改为:
<asp:DataGrid ID="dg" runat="server" OnItemDataBound="dg_ItemDataBound">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:CheckBox ID="cb" runat="server" />
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
2-在code-behind
实施中dg_ItemDataBound
:
protected void dg_ItemDataBound(object sender, DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
CheckBox ch = (CheckBox)e.Item.FindControl("cb");
ch.Attributes.Add("OnClick", string.Format("myCheckChanged({0});", e.Item.Cells[1].Text));
}
}
注意:在这个片段中e.Item.Cells[1].Text
,你必须知道myid
在哪个Cells
这两种方式都可以正常工作。