【发布时间】:2015-03-05 10:26:54
【问题描述】:
我有一个网格视图,它从 SQL 表中动态显示数据。这部分没有问题。我添加了一个包含单选按钮列表的列。如果在用户单击“提交”按钮时选择了这些行的单选按钮列表项,我想获取第 3 列(索引 2)的所有单元格值。
我的网格视图:
<asp:GridView ID="GridView1" runat="server">
<Columns>
<asp:TemplateField>
<HeaderTemplate>
RadioButtonList
</HeaderTemplate>
<ItemTemplate>
<asp:RadioButtonList ID="Radio1" runat="server">
<asp:ListItem Value="1" Text="OK" />
<asp:ListItem Value="0" Text="KO" />
</asp:RadioButtonList>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Button ID="Submit" runat="server" Text="Submit" OnClick="Submit_Click"/>
protected void Page_Load(object sender, EventArgs e)
{
string strSQLconnection = "Connection to DB";
SqlConnection sqlConnection = new SqlConnection(strSQLconnection);
SqlCommand sqlCommand = new SqlCommand("SELECT Champ1, Champ2, Camp3 FROM Table1 WHERE Condition1 IS NULL AND Condition2 IS NULL", sqlConnection);
sqlConnection.Open();
SqlDataReader reader = sqlCommand.ExecuteReader();
GridView1.DataSource = reader;
GridView1.DataBind();
sqlConnection.Close();
}
编辑:Gridview 示例
---------------------------------------------
Radio | Column0 | Column1 | Column2 |
---------------------------------------------
°OK °KO | abc | abc | abc |
---------------------------------------------
°OK °KO | abc | abc | abc |
---------------------------------------------
°OK °KO | abc | abc | abc |
---------------------------------------------
°OK °KO | abc | abc | abc |
---------------------------------------------
°OK °KO | abc | abc | abc |
---------------------------------------------
°OK °KO | abc | abc | abc |
--------------------------------------------
如果选择了单选列表项,我想在单击提交按钮时获取 column1 中相应单元格的值。
我的代码:
protected void Submit_Click(object sender, EventArgs e)
{
foreach (GridViewRow row in GridView1.Rows)
{
//Find the Radio button control
RadioButtonList rb = (RadioButtonList)row.FindControl("Radio1");
if (rb.SelectedItem.Text == "OK")
{
string id = row.Cells[2].Text;
string query = "Query";
SqlConnection con = new SqlConnection("Connection to DB");
SqlCommand cmd = new SqlCommand(query, con);
con.Open();
added = cmd.ExecuteNonQuery();
con.Close();
}
}
}
提交时遇到的错误:
[NullReferenceException: Object reference not set to an instance of an object.]
MasterPage.Submit_Click(Object sender, EventArgs e) +202
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +114
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +139
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +28
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2980
不知道如何处理。
【问题讨论】: