私はasp.netに比較的慣れていないので、クエリが幼稚なグリッドデザインである場合はご容赦ください。
<asp:GridView runat ="server" GridLines = "Both" DataKeyNames="book_id"AutoGenerateColumns ="false" CellPadding ="5" CellSpacing ="5" allowpaging="True" allowsorting="True"
ID="gv_table1" EmptyDataText ="No data exists" OnRowEditing="gv_RowEditing"
OnRowCancelingEdit="gv_RowCancelingEdit" OnRowUpdating="gv_RowUpdating" OnRowDeleting="gv_RowDeleting">
<Columns>
<asp:BoundField HeaderText="Book ID" DataField="book_id">
</asp:BoundField>
<asp:BoundField DataField="book_name" HeaderText="Book Name">
</asp:BoundField>
<asp:BoundField DataField="author_name" HeaderText="Author Name">
</asp:BoundField>
<asp:BoundField DataField="publisher" HeaderText="Publisher">
</asp:BoundField>
<asp:BoundField DataField="year_edition" HeaderText="Year/Edition">
</asp:BoundField>
<asp:BoundField DataField="total_no" HeaderText="Total No">
</asp:BoundField>
<asp:BoundField DataField="available" HeaderText="Available">
</asp:BoundField>
<asp:BoundField DataField="tags" HeaderText="Tags">
</asp:BoundField>
<asp:BoundField DataField="fare" HeaderText="Fare">
</asp:BoundField>
<asp:BoundField DataField="state" HeaderText="State">
</asp:BoundField>
<asp:templatefield HeaderText ="Options">
<itemtemplate >
<asp:linkbutton id="btnEdit" runat="server" commandname="Edit" text="Edit" />
<asp:linkbutton id="btnDelete" runat="server" commandname="Delete" text="Delete" />
</itemtemplate>
<edititemtemplate>
<asp:linkbutton id="btnUpdate" runat="server" commandname="Update" text="Update" />
<asp:linkbutton id="btnCancel" runat="server" commandname="Cancel" text="Cancel" />
</edititemtemplate>
</asp:templatefield>
</Columns>
</asp:GridView>
私のコードビハインド:
public void gv_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
int bookid = Convert.ToInt32(gv_table1.DataKeys[e.RowIndex].Values["book_id"].ToString());
string bookname =(gv_table1.Rows[e.NewValues].Cells[1].Controls[0] as TextBox).Text;
string bookname = (gv_table1.Rows[e.RowIndex].FindControl("author_name") as TextBox).Text;
string book = gv_table1.Rows[e.RowIndex].Cells[1].Text ;
}
データを削除することはできますが、編集することはできません。グリッド ビューに入力した変更された値を取得できません。編集または変更する前にグリッドビューにあった値を取得できるよう最善を尽くしました。よろしくお願いします。