나는 이상한 상황이 있습니다.GridView onRowUpdating 텍스트 상자에 이벤트 액세스
- : 이
<asp:gridview ID="grdBooks" class="grdBooks" runat="server" width="100%" DataKeyNames="RecId,RefAuthorsRecId,RefBooksTypeRecId" autogeneratecolumns="false" onDataBound="grdBooks_dataBound" onPreRender="grdBooks_preRender" onrowediting="grdBooks_RowEdit" onrowupdating="grbBooks_onRowUpdating" onrowupdated="grdBooks_onUpdated" autogenerateeditbutton="true" onrowcancelingedit="grdBooks_onCancelingEdit"> <Columns> <asp:TemplateField HeaderText="Title"> <EditItemTemplate> <asp:TextBox ID="txtgrdTitle" runat="server" width="200px"></asp:TextBox> <asp:Label ID="lblgrdTitle2" runat="server" visible="false" Text='<%# Eval("Title") %>'></asp:Label> </EditItemTemplate> <ItemTemplate> <asp:Label ID="lblgrdTitle" runat="server" Text='<%# Bind("Title") %>'></asp:Label> </ItemTemplate> </asp:TemplateField>.....
이것은 "onRowEdit"와 "onRowUpdating"
protected void grdBooks_RowEdit(object sender, GridViewEditEventArgs e) { grdBooks.EditIndex = e.NewEditIndex; grdBooks.DataSource = book; grdBooks.DataBind(); TextBox txtTitle = grdBooks.Rows[e.NewEditIndex].FindControl("txtgrdTitle") as TextBox; Label lblTitle = grdBooks.Rows[e.NewEditIndex].FindControl("lblgrdTitle") as Label; txtTitle.Text = lblTitle.Text; } protected void grbBooks_onRowUpdating(object sender, GridViewUpdateEventArgs e) { TextBox txtTitle = grdBooks.Rows[e.RowIndex].FindControl("txtgrdTitle") as TextBox; .... }
문제는의 일부입니다 내있는 gridview의 ASCX의 코드의 일부이다 rowEdit 잘 작동, 편집 가능한 텍스트 상자에서 모눈의 모든 행을 변경하십시오. 문제는 내가 텍스트 상자에 무언가를 쓰고 "update"를 누르고 "onRowUpdate"메쏘드로 갈 때 내가 초기화 한 텍스트 객체에 새로운 텍스트가 없다는 것입니다. 나는 오래된 것을 가지고있다.
(원래 제목의 값을 가지고있는 editTemplate에 보이는 레이블을 사용하고 있습니다.) 텍스트 상자에 Eval ("title")을 넣기 전에는이 코드가 probl 그래서 다른 방법을 시도해보십시오)
'e.NewValues' 사전 사용 –