Asp.net 从DataGrid中的选定复选框获取索引
我正在Asp.net中使用DataGridAsp.net 从DataGrid中的选定复选框获取索引,asp.net,Asp.net,我正在Asp.net中使用DataGrid <asp:DataGrid> <Columns> <asp:TemplateColumn> <ItemTemplate> <asp:CheckBox ID="chkDetail" runat="server" OnCheckedChanged="chkDetail_CheckedChanged" />
<asp:DataGrid>
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:CheckBox ID="chkDetail" runat="server" OnCheckedChanged="chkDetail_CheckedChanged" />
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Name" HeaderStyle-Font-Bold="true" HeaderStyle-HorizontalAlign="Center">
<EditItemTemplate>
<asp:TextBox runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Name") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Name") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
因为DataGrid没有GridView那样的“行”,所以我不知道如何从同一行中获取名称
提前谢谢
DataGridViewRow dgvrows = TrGrid.SelectedRows;
string c = dgvrows.Cells("Late_Time").value.toString();
或
你可以试试这个代码
protected void chkDetail_CheckedChanged(object sender, EventArgs e)
{
Context["Name"] = (((sender as CheckBox).NamingContainer as DataGridItem).FindControl("label_id") as Label).Text;
}
您的发送者
将成为一个复选框
,因为事件是由它触发的
每个控件都有一个名为
NamingContainer
的属性,该属性提供了继承INamingContainer
接口的最近的服务器控件。在您的例子中,它是DataGridItem
。您可以使用FindControl
方法查找子控件,并将其强制转换为适当的控件类型以访问其属性。u谈论gridview或datagrid?我的框架是4.5。它不支持GridView控件
DataGridViewRow dgvrow = this.dataGridView1.Rows[index];
DataRowView drvrow = (DataRowView)dgvrow.DataBoundItem;
protected void chkDetail_CheckedChanged(object sender, EventArgs e)
{
Context["Name"] = (((sender as CheckBox).NamingContainer as DataGridItem).FindControl("label_id") as Label).Text;
}