私はいくつかのチェックボックス& texboxesを持つasp.net webformを持っています。そして、送信時にデータはSQLサーバに保存されます。どのようにしてデータベースからフォームを事前入力するためにgridviewのhtml列を取得できますか?
フォームからのデータで構成されるグリッドビューで構成される別個のウェブフォームがあります。
グリッドビューに追加の列を追加して、データを再ロードして、送信されたデータをデータベースに基づいてフォームに挿入する各レコードに対して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からのデータが入力されます。これは可能ですか?私はここで理にかなっていると思う。
おかげで、ボタンを詳細ページへのリンクを作成する、またはすることができます。今私は別の問題があるようです。リンクをクリックすると、アドレスバーに表示されますが、変更は行われません。私はそれが私のコードビハインドのこの行のためだと確信しています:cmd.Parameters ["@ SiteID"]。値= 500;これを何に変更すればよいですか? –
私はそれを理解しました。私は文字列を追加する必要がありました。SiteID = Request.QueryString ["SiteID"];また、SiteIDに500を変更する必要がありました。 –