【发布时间】:2017-04-11 20:52:34
【问题描述】:
我有一个带有几个复选框和 texbox 的 asp.net 网络表单,提交时数据存储在 SQL 服务器上。
我有一个单独的网络表单,它由一个网格视图组成,该网格视图由表单中的数据组成。
我想在 gridview 中添加一个额外的列,该列有一个 html 链接,用于根据提交到数据库的数据重新加载和填充表单的每条记录。
ASP.NET:
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" DataSourceID="GridDataSource">
<Columns>
<asp:BoundField DataField="SiteID" HeaderText="ID"></asp:BoundField>
<asp:BoundField DataField="Name" HeaderText="Name"></asp:BoundField>
<asp:BoundField DataField="Date" HeaderText="Date"></asp:BoundField>
</Columns>
</asp:GridView>
我有可以从下面的数据库中填充表单复选框的工作代码:
C# 代码隐藏:
SqlCommand cmd = null;
string conn = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
string queryString = @"SELECT AA, BB, CC FROM Test " +
"WHERE SITE_ID = @SiteID";
using (SqlConnection connection = new SqlConnection(conn))
{
SqlCommand command = new SqlCommand(queryString, connection);
connection.Open();
cmd = new SqlCommand(queryString);
cmd.Connection = connection;
cmd.Parameters.Add(new SqlParameter("@SiteID", //the name of the parameter to map
System.Data.SqlDbType.NVarChar, //SqlDbType value
20, //The width of the parameter
"SITE_ID")); //The name of the column source
//Fill the parameter with the value retrieved
//from the text field
cmd.Parameters["@SiteID"].Value = 500;
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
CheckBox1.Checked = (reader.GetBoolean(reader.GetOrdinal("AA")));
CheckBox2.Checked = (reader.GetBoolean(reader.GetOrdinal("BB")));
CheckBox3.Checked = (reader.GetBoolean(reader.GetOrdinal("CC")));
}
}
正如您在代码中看到的那样,我的问题是它只会返回 SiteID = 500 的值。我希望 html 列将 SiteID 与每条记录相关联,并在单击链接时打开带有来自该 SiteID 的填充数据的表单。这可能吗?我希望我在这里说得通。
【问题讨论】:
标签: c# jquery html asp.net gridview