データベースからのデータを含む GridView があります。
ただし、削除リンクにカーソルを合わせると、間違った ID にリンクされます。
データベースのIDを使用したい。
この質問はこれと非常に関連していますが、回答はありませんでした。
私のGridView
コードは次のようになります。
<asp:GridView ID="GridView1" runat="server" OnRowDeleting="GridView1_RowDeleting1" AutoGenerateColumns="false" DataKeyNames="id">
<Columns>
<asp:BoundField HeaderText="Name" DataField="name" />
<asp:BoundField HeaderText="Email" DataField="email" />
<asp:BoundField HeaderText="Comment" DataField="comment" />
<asp:CommandField ShowDeleteButton="True" />
</Columns>
</asp:GridView>
DeleteButton正しい ID へのリンクを作成するにはどうすればよいですか?
アップデート
データをデータテーブルに配置するページ読み込みコード:
protected void Page_Load(object sender, EventArgs e)
{
DataTable commentsTable = null;
commentsTable = new DataTable("Comments");
using (SqlDataReader reader = studentManager.getCommentsFromDB())
{
commentsTable.Load(reader);
GridView1.DataSource = commentsTable;
GridView1.DataBind();
}
}
getCommentsFromDB:
public SqlDataReader getCommentsFromDB()
{
SqlConnection conn = dal.connectDatabase();
conn.Open();
cmd = new SqlCommand(@"SELECT id, name, email, comment FROM GuestBook", conn);
rdr = cmd.ExecuteReader();
return rdr;
}