2010-02-19 24 views
0

我正在使用gridview的rowupdating事件的應用程序。我在我的列中使用templatefield,所以我無法從我在gridview中的textboxws中獲取新值。我怎樣才能從文本框中獲得新的值。以下是我的代碼rowupdating:rowupdating沒有給出新的值

protected void gviewTemplate_RowUpdating(object sender, GridViewUpdateEventArgs e) 
{ 
    gviewTemplate.EditIndex = -1; 
    string rowNum = ViewState["ID"].ToString(); 
    Label lbl2 = (Label)gviewTemplate.Rows[e.RowIndex].FindControl("lblTemplateName"); 
    Label lbl1 = (Label)gviewTemplate.Rows[e.RowIndex].FindControl("lblUploaded"); 

    TextBox txtTempName = (TextBox)gviewTemplate.Rows[e.RowIndex].FindControl("txtTemplateName"); 
    TextBox txtHeading = (TextBox)gviewTemplate.Rows[e.RowIndex].FindControl("txtHeading"); 
    TextBox txtCoupon = (TextBox)gviewTemplate.Rows[e.RowIndex].FindControl("txtCouponText"); 
    TextBox txtBrand = (TextBox)gviewTemplate.Rows[e.RowIndex].FindControl("txtBrandName"); 
    TextBox txtSearchText = (TextBox)gviewTemplate.Rows[e.RowIndex].FindControl("txtSearch"); 
    TextBox txtDiscount = (TextBox)gviewTemplate.Rows[e.RowIndex].FindControl("txtDiscount"); 
    TextBox txtStartDt = (TextBox)gviewTemplate.Rows[e.RowIndex].FindControl("txtStartDt"); 
} 

我想從這些文本框中獲取新的值,但它總是給我舊值。是的,e.Newvalues沒有給我任何東西。它總是空的。這是小摘自我的gridview的設計:

<asp:GridView runat="server" AutoGenerateColumns="False" 
         ID="gviewTemplate" onrowdatabound="gviewTemplate_RowDataBound" DataKeyNames="F1" 
         onrowcommand="gviewTemplate_RowCommand" 
         onrowediting="gviewTemplate_RowEditing" 
         onrowcancelingedit="gviewTemplate_RowCancelingEdit" 
         onrowupdating="gviewTemplate_RowUpdating" 
         onrowdeleting="gviewTemplate_RowDeleting" 
         onrowupdated="gviewTemplate_RowUpdated"> 
         <Columns> 
          <asp:TemplateField HeaderText="Uploaded Image"> 
          <EditItemTemplate> 
           <asp:LinkButton Text="Reload" runat="server" OnClick="lbtnReloadImage_Click" CommandName="reload" ID="lbtnReloadImage"></asp:LinkButton> 
          </EditItemTemplate> 
           <ItemTemplate> 
            <table id="Table2" runat="server" width="100%" cellpadding="0" cellspacing="0" border="0"> 
             <tr> 
              <td> 
               <asp:Label Runat="server" Text='<%# Eval("Uploaded") %>' ID="lblUploaded"></asp:Label> 
              </td> 
             </tr> 
            </table> 
           </ItemTemplate> 
          </asp:TemplateField> 
          <asp:TemplateField HeaderText="Template Name"> 
           <ItemStyle VerticalAlign="Top" HorizontalAlign="Center" /> 
           <EditItemTemplate> 
            <asp:TextBox ID="txtTemplateName" Width="60" Runat="server" Text='<%# Eval("F1") %>'></asp:TextBox> 
            <asp:RequiredFieldValidator ID="RequiredFieldValidator1" Runat="server" 
            ErrorMessage="You must provide a Product Name." ControlToValidate="txtTemplateName">*</asp:RequiredFieldValidator> 
           </EditItemTemplate> 
           <ItemTemplate> 
            <table id="Table3" runat="server" width="100%" cellpadding="0" cellspacing="0" border="0"> 
             <tr> 
              <td> 
               <asp:Label ID="lblTemplateName" runat="server" Text='<%# Eval("F1") %>'></asp:Label> 
              </td> 
             </tr> 
            </table> 
           </ItemTemplate> 
          </asp:TemplateField> 
          <asp:TemplateField HeaderText="Heading"> 
           <ItemStyle VerticalAlign="Top" HorizontalAlign="Center" /> 
           <EditItemTemplate> 
            <asp:TextBox ID="txtHeading" Runat="server" Width="60" Text='<%# Eval("F2") %>'></asp:TextBox> 
            <asp:RequiredFieldValidator ID="RequiredFieldValidator2" Runat="server" 
            ErrorMessage="You must provide a Product Name." ControlToValidate="txtHeading">*</asp:RequiredFieldValidator> 
           </EditItemTemplate> 
           <ItemTemplate> 
            <table id="Table4" runat="server" width="100%" cellpadding="0" cellspacing="0" border="0"> 
             <tr> 
              <td> 
               <asp:Label ID="lblHeading" runat="server" Text='<%# Eval("F2") %>'></asp:Label> 
              </td> 
             </tr> 
            </table> 
           </ItemTemplate> 
          </asp:TemplateField> 
          <asp:TemplateField HeaderText="Coupon Text"> 
           <ItemStyle VerticalAlign="Top" HorizontalAlign="Center" /> 
           <EditItemTemplate> 
            <asp:TextBox ID="txtCouponText" Runat="server" Width="80" Text='<%# Bind("F3") %>'></asp:TextBox> 
            <asp:RequiredFieldValidator ID="RequiredFieldValidator3" Runat="server" 
            ErrorMessage="You must provide a Product Name." ControlToValidate="txtCouponText">*</asp:RequiredFieldValidator> 
           </EditItemTemplate> 
           <ItemTemplate> 
            <table id="Table5" runat="server" width="100%" cellpadding="0" cellspacing="0" border="0"> 
             <tr> 
              <td> 
               <asp:Label Runat="server" Text='<%# Bind("F3") %>' ID="lblCouponText"></asp:Label> 
              </td> 
             </tr> 
            </table> 
           </ItemTemplate> 
          </asp:TemplateField> 

誰能告訴我如何從這些文本框的新值?

+0

我如何做到這一點,我不知道如何接受答案 – pankaj 2010-02-19 11:44:52

回答

3

不要重新綁定的GridView,只要綁定,如果該頁面不回傳

2

需要綁定網格, 如果沒有的IsPostBack然後 '綁定 結束時,如果