日期:2014-05-18  浏览次数:20460 次

关于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;