关于DataGrid的TemplateColumn的问题,请高人指点!
DataGrid的TemplateColumn里有一个CheckBox,我的问题是CheckBox似乎不能激发OnItemCommand事件,那么我怎么可以在CheckBox的Checked属性发生改变的时,知道发生变化的这个CheckBox时DataGrid中的哪一行的呢?
也就是说,我要 <font color=red> 从CheckBox出发,找出它位于DataGrid中的那一行? </font>
请不要误解我的意思!我不是想知道那些CheckBox被选中了!!!
比如DataGrid显示了10行记录,每行中都有一个CheckBox,我点了其中一个,怎样可以知道我点的是这10行里的哪一行的CheckBox?
不要用遍历判断Checked属性,如果有开始已经有被选中的CheckBox的话就行不通了。
希望高手帮帮忙,在线等!!谢谢!!
------解决方案--------------------给它一个自定义属性
<asp:checkbox aa= <%#Eval( "id ")%>
后台得到checkbox后通过
Attributes[ "aa "]来得到
------解决方案-------------------- ASP.NET DEMO 14: 如何在 GridView/DataGrid 模板列中使用自动回发的 CheckBox/DropDownList
http://www.cnblogs.com/Jinglecat/archive/2007/07/29/835817.html
------解决方案--------------------protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable dt = new DataTable( "xxx ");
dt.Columns.Add( "id ");
for (int i = 1; i < 11; i++)
{
DataRow tr = dt.NewRow();
tr[ "id "] = i;
dt.Rows.Add(tr);
}
this.GridView1.DataSource = dt;
this.GridView1.DataBind();
}
}
protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
GridViewRow editRow = (GridViewRow)((Control)sender).Parent.Parent;
Response.Write(editRow.RowIndex + 1);//若是从第0行则不用加1;
}
已测试通过了
checkbox
autopostback=true;