C# 访问gridview单元格
如何访问特定选定和选中行的gridview单元格。下面是代码C# 访问gridview单元格,c#,asp.net,.net,gridview,C#,Asp.net,.net,Gridview,如何访问特定选定和选中行的gridview单元格。下面是代码 <asp:GridView ID="GridView1" runat="server" AutoGenerateSelectButton="True"> <Columns> <asp:TemplateField HeaderText="IsApproved"> <ItemTemplate> <asp:CheckBox ID="ch
<asp:GridView ID="GridView1" runat="server" AutoGenerateSelectButton="True">
<Columns>
<asp:TemplateField HeaderText="IsApproved">
<ItemTemplate>
<asp:CheckBox ID="chkApproved" runat="server" CommandName="Approve" />
</ItemTemplate></asp:TemplateField></Columns></asp:GridView>
<asp:RadioButtonList ID="RadioButtonList1" runat="server" RepeatDirection="Horizontal">
<asp:ListItem Text="Approve" Value="1"></asp:ListItem>
<asp:ListItem Text="Reject" Value="2"></asp:ListItem>
</asp:RadioButtonList>
gridview的数据源由加载页面上的强类型数据集设置。现在在btnSubmit上,如果选中,我想将所选行插入到我的数据库表中
protected void btnSubmit_Click(object sender, EventArgs e)
{
if (RadioButtonList1.SelectedValue == "1")
{
foreach (GridViewRow row in GridView1.Rows)
{
var chk = row.FindControl("chkApproved") as CheckBox;
if (chk.Checked)
{
DataSet1TableAdapters.tbl_ApproveTableAdapter ta = new DataSet1TableAdapters.tbl_ApproveTableAdapter();
DataSet1.tbl_ApproveDataTable dt = new DataSet1.tbl_ApproveDataTable();
ta.Insert()// here I've to specify the cells of GV
}
}
}
}
<asp:Button ID="btnSubmit" runat="server" OnClick="btnSubmit_Click" Text="Submit" />
protectedvoid btnSubmit\u单击(对象发送方,事件参数e)
{
如果(RadioButtonList1.SelectedValue==“1”)
{
foreach(GridView1.Rows中的GridViewRow行)
{
var chk=行。FindControl(“chkaprovided”)作为复选框;
如果(已检查)
{
DataSet1TableAdapters.tbl_ApprovableAdapter ta=新的DataSet1TableAdapters.tbl_ApprovableAdapter();
DataSet1.tbl_ApproveDataTable dt=新的DataSet1.tbl_ApproveDataTable();
ta.Insert()//这里我必须指定GV的单元格
}
}
}
}
我这里有两个问题
i) 如果选中复选框中的行,则访问gridview单元格
ii)在我的GV select上,它会自动设置为AutoPostback,我想禁用它,因为它正在清除所选复选框。
.更新面板自动回发,但您可以使用AsyncPostBackTrigger禁用自动回发。将ChildrenAsTriggers属性设置为true,将UpdateMode属性设置为Conditional
<asp:UpdatePanel ID="myPanel" runat="server" ChildrenAsTriggers="true" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />
</Triggers>
<ContentTemplate>
// put your code here to avoid autopost back
</ContentTemplate>
</asp:UpdatePanel>
//把你的代码放在这里以避免自动回邮
另一种禁用autopostback的方法是将autopostback设置为false
<asp:RadioButtonList ID="RadioButtonList1" AutoPostBack="False">
您需要像这样绑定gridview
if (!Page.IsPostBack)
{
GridView1.DataSource = source;
GridView1.DataBind();
}
试试看。当然,它会给出您期望的结果。尝试在中使用CommandArgument=''属性。它返回所选GridView行的索引
然后单击事件,您可以编写逻辑来获取所选gridview行的特定行和列的值。
例如,如果您想访问第一行的第三列,您可以编写
GridView.Rows[0]。单元格[2]。单击事件或checkedchange事件中的文本以获取值。获取所选复选框的代码工作正常。您能告诉我们您在GridView中绑定了哪些事件吗?我想ItemCommand会绑定吗?