2012-02-10 2 views
2

をチェックした後のasp.net GridViewの中でテキストボックスの値を維持するために、私は、挿入、編集、更新と定期的にGridViewを持って、下の画像のように操作を削除します。挿入する前どのように必要なフィールド検証

GridView

それらが満たされたかのように空にしている場合はDBへのデータは、私は、テキストボックスに検証を行っています:

if (txtNewID.Text == "") 
{ 
    string message = "Please enter ID"; 
    ScriptManager.RegisterClientScriptBlock(Page, this.GetType(), "Alert", "alert('" + message + "')", true); 
    isValid = false;    
} 

しかし、警告メッセージの[OK]ボタンをクリックした後、私は必要なテキストボックスに付加価値があります迷ってる。 gridviewのテキストボックスの値を保持する方法は?

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="Code, Type" OnRowCancelingEdit="GridView1_RowCancelingEdit" OnRowDataBound="GridView1_RowDataBound" OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating" OnRowCommand="GridView1_RowCommand" ShowFooter="True" OnRowDeleting="GridView1_RowDeleting"> 
    <Columns> 
     <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
     <ContentTemplate> 
     <tr> 
     <td class="style1" > 
     <asp:GridView ID="gridID" DataKeyNames="Tracker_ID , Current_Status" runat="server" 
       GridLines="Both" Width="600px" BorderColor="Black" 
       ShowFooter="true" AutoGenerateColumns="false" 
       onrowcancelingedit="gridID_RowCancelingEdit" 
       onrowediting="gridID_RowEditing" onrowcommand="gridID_RowCommand" 
       onrowdeleting="gridID_RowDeleting" onrowdatabound="gridID_RowDataBound" onrowupdating="gridID_RowUpdating" 
       > 
     <Columns> 
     <asp:TemplateField HeaderStyle-BackColor="#1B7AE0" HeaderStyle-Font-Size="10" HeaderText="ID#"> 
     <EditItemTemplate> 
     <asp:TextBox ID="ID" BorderWidth="1" Text='<%# Eval("ID") %>' Width="50px" runat="server"></asp:TextBox> 
    </EditItemTemplate> 
    <FooterTemplate> 
     <asp:TextBox ID="txtNewID" BorderWidth="1" Width="50px" runat="server"></asp:TextBox> </FooterTemplate> 
    <ItemTemplate> 
     <asp:Label ID="lblID" Font-Size="Smaller" runat="server" Text='<%# Bind("ID") %>'></asp:Label> 
    </ItemTemplate> 

    <HeaderStyle BackColor="#1B7AE0" Font-Size="10pt"></HeaderStyle> 
    </asp:TemplateField> 

    <asp:TemplateField HeaderText="ID Description" HeaderStyle-BackColor="#1B7AE0" HeaderStyle-Font-Size="10"> 
     <EditItemTemplate> 
     <asp:TextBox ID="IDDesc" Text='<%# Eval("ID_Description") %>' Width="99px" BorderWidth="1" runat="server"></asp:TextBox> 
    </EditItemTemplate> 
    <FooterTemplate> 
     <asp:TextBox ID="txtNewIDDesc" BorderWidth="1" Width="99px" runat="server"></asp:TextBox> </FooterTemplate> 
    <ItemTemplate> 
     <asp:Label ID="lblIDDesc" Font-Size="Smaller" Text='<%# Bind("ID_Description") %>' runat="server"></asp:Label> 
    </ItemTemplate> 
    <HeaderStyle BackColor="#1B7AE0" Font-Size="10pt"></HeaderStyle> 
    </asp:TemplateField> 

    <asp:TemplateField HeaderText="HCL Author" HeaderStyle-BackColor="#1B7AE0" HeaderStyle-Font-Size="10"> 
     <EditItemTemplate> 
     <asp:TextBox ID="txtHclAuthor" Text='<%# Eval("HCL_Author") %>' Width="95px" BorderWidth="1" runat="server"></asp:TextBox> 
    </EditItemTemplate> 
    <FooterTemplate> 
     <asp:TextBox ID="txtNewHclAuthor" BorderWidth="1" Width="95px" runat="server"></asp:TextBox> </FooterTemplate> 
    <ItemTemplate> 
     <asp:Label ID="lblHclAuthor" Font-Size="Smaller" Text='<%# Bind("HCL_Author") %>' runat="server"></asp:Label> 
    </ItemTemplate> 
    <HeaderStyle BackColor="#1B7AE0" Font-Size="10pt"></HeaderStyle> 
    </asp:TemplateField> 

    <asp:TemplateField HeaderText="Xerox Author" HeaderStyle-BackColor="#1B7AE0" HeaderStyle-Font-Size="10"> 
     <EditItemTemplate> 
     <asp:TextBox ID="txtXeroxAuthor" Text='<%# Eval("Xerox_Author") %>' Width="95px" BorderWidth="1" runat="server"></asp:TextBox> 
    </EditItemTemplate> 
    <FooterTemplate> 
     <asp:TextBox ID="txtNewXeroxAuthor" BorderWidth="1" Width="95px" runat="server"></asp:TextBox> </FooterTemplate> 
    <ItemTemplate> 
     <asp:Label ID="lblXeroxAuthor" Font-Size="Smaller" Text='<%# Bind("Xerox_Author") %>' runat="server"></asp:Label> 
    </ItemTemplate> 
    <HeaderStyle BackColor="#1B7AE0" Font-Size="10pt"></HeaderStyle> 
    </asp:TemplateField> 

    <asp:TemplateField HeaderText="Track" HeaderStyle-BackColor="#1B7AE0" HeaderStyle-Font-Size="10"> 
     <EditItemTemplate> 
     <asp:TextBox ID="IDTrack" Text='<%# Eval("Track") %>' Width="80px" BorderWidth="1" runat="server"></asp:TextBox> 
    </EditItemTemplate> 
    <FooterTemplate> 
     <asp:TextBox ID="txtNewIDTrack" BorderWidth="1" Width="80px" runat="server"></asp:TextBox> </FooterTemplate> 
    <ItemTemplate> 
     <asp:Label ID="lblIDTrack" Font-Size="Smaller" Text='<%# Bind("Track") %>' runat="server"></asp:Label> 
    </ItemTemplate> 
    <HeaderStyle BackColor="#1B7AE0" Font-Size="10pt"></HeaderStyle> 
    </asp:TemplateField> 
    </Columns> 

     </asp:GridView> 
     </td>  </tr>  </ContentTemplate> 
</asp:UpdatePanel> 
+1

これには(ReuqiredField)バリデーターを使用するので、ユーザーが値を入力していない場合でもポストバックさえありません。 –

+0

@TimSchmelterが示唆しているように、組み込みバリデーターを使用すると、これについて何も心配する必要はありません。(独自のjsを書く必要はありません) – peroija

答えて

0

グリッドビューのRowDataBoundEventで必要なフィールドバリデーターを動的に検索してみてください。

TextBox tb=e.Row.FindControl("txtBox") as TextBox; 
tb.ValidationGroup=e.RowIndex; 
RequiredFieldvalidation rv=e.Row.FindControl("rv") as 
RequiredFieldValidator; rv.ControlTovalidate=tb; rv.ErrorMessage; 
rv.ErrorMessage="*"; 
rv.ValidationGroup=e.RowIndex; 
+0

私は検証のためにjavascriptを使用しました。今はうまく動作します。ありがとう – Tarun

1

PostBackイベントはあなたがのUpdatePanelにグリッドを配置data.Did、我々はあなたがビューステートの値を維持し得なかった場合にはそうでない場合は、グリッドに配置ページを損失することができますと呼ばれるたび。

関連する問題