Проверка Gridview - PullRequest
       4

Проверка Gridview

4 голосов
/ 16 мая 2011

Я использую Gridview и использую текстовое поле Шаблон элемента.Есть 5 текстовых полей, и я добавляю новую строку динамически при нажатии на добавить строку BTN.в этой строке я добавляю все текстовое поле, которое является пустым.Теперь я хочу проверить это текстовое поле, нажав btn.

сейчас, чтобы сделать это?

Я использовал обязательную проверку поля, она работает впервые при отображении текстового поля, но когда я добавляю новоетекстовое поле строки не вызывает проверки, я думаю, что есть другой способ дать подтверждение для динамически добавляемого текстового поля.

Как я могу проверить мое все динамически добавленное текстовое поле

Вид сетки, которыйя использую ..

            <Columns >

                    <asp:TemplateField>
                    <ItemTemplate>
                        <div class="otherOthersTd">
                            <asp:Label ID="lblcnt" ForeColor="#136A96" Text='<%#Eval("Count") %>' runat="server" ></asp:Label>
                            <asp:Label ID="lblId" runat="server" text='<%#Eval("Id") %>' Visible="false"></asp:Label>
                        </div>
                    </ItemTemplate>
                    </asp:TemplateField>
                   <asp:TemplateField HeaderText="First Name">

                            <ItemTemplate>

                                <asp:TextBox ID="txtName" runat="server" Text='<%# Eval("Name") %>' Width="88px"></asp:TextBox>

                            </ItemTemplate>


                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Middle Name">

                            <ItemTemplate>

                                <asp:TextBox ID="txtMName" runat="server" Text='<%# Eval("MName") %>' 
                                     Width="88px"></asp:TextBox>

                            </ItemTemplate>

                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Last Name">

                            <ItemTemplate>

                                <asp:TextBox ID="txtLName" runat="server" Text='<%# Eval("LName") %>' 
                                     Width="88px"></asp:TextBox>
                            </ItemTemplate>

                    </asp:TemplateField>

                    <asp:TemplateField HeaderText="Degree">

                            <ItemTemplate>

                                <asp:TextBox ID="txtDegree" runat="Server" Text='<%# Eval("Degree") %>' 
                                    Width="50px"></asp:TextBox> 

                            </ItemTemplate>


                    </asp:TemplateField>

                    <asp:TemplateField HeaderText="Title">

                            <ItemTemplate>
                                <asp:TextBox ID="txtTitle" runat="Server" Text='<%# Eval("Title") %>' Width="88px"></asp:TextBox>

                            </ItemTemplate>


                    </asp:TemplateField>

                <asp:TemplateField HeaderText="Email">
                     <ItemTemplate> 
                            <asp:TextBox ID="txtEmail" runat="Server" 
                                Text='<%# Eval("Email") %>' Width="88px" CausesValidation="True" ValidationGroup="a"></asp:TextBox>
                        <asp:RegularExpressionValidator ID="RegExpr" runat="server" ErrorMessage="Invalid email id" ControlToValidate="txtEmail" ValidationGroup="a" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
                         <asp:Label ID="revexp" runat="server"  > </asp:Label>
                            </ItemTemplate>

                </asp:TemplateField>

                <asp:TemplateField HeaderText="Institution">

                        <ItemTemplate>
                            <asp:TextBox ID="txtInstitution" runat="server" Text='<%#Eval("Institution") %>'></asp:TextBox>

                        </ItemTemplate>

                </asp:TemplateField>


     <asp:Button ID="btnNext" runat="server" ValidationGroup="a" CausesValidation="true" Text="Next" class="next btn" onclick="btnNext_Click"/>        

                    <asp:TemplateField>  <ItemTemplate>
                     <asp:Label ID="lblAuthor" runat="server" Text="Authorerror" Visible="false"  ForeColor="Red" Font-Bold="True" Font-Size="X-Large">*</asp:Label>
        </ItemTemplate>
                    </asp:TemplateField>


            </Columns>

            <FooterStyle BackColor="#CCCC99" />
            <SelectedRowStyle BackColor="#CE5D5A" Font-Bold="false" ForeColor="White" />
            <PagerStyle BackColor="#F7F7DE" ForeColor="Black" HorizontalAlign="Right" />
            <HeaderStyle  Font-Bold="false" ForeColor="#136A96" />

    </asp:GridView>

мой код ...

protected void GridView1_OnRowCommand1(object sender, GridViewCommandEventArgs e)
        {

        if (e.CommandName.Equals(""))
        {
            lstAuthors = (List<OtherAuthors>)Session["lstAuthors"];
            if (lstAuthors.Count == 0)
            {
                OtherAuthors obj0 = new OtherAuthors();
                obj0.Count = "Author 1:";                    
                lstAuthors.Add(obj0);
            }
            int index=GridView1.Rows.Count-1;
            for (int i = 0; i < GridView1.Rows.Count; i++)
            {
                TextBox Name = GridView1.Rows[i].FindControl("txtName") as TextBox;
                TextBox MName = GridView1.Rows[i].FindControl("txtMName") as TextBox;
                TextBox LName = GridView1.Rows[i].FindControl("txtLName") as TextBox;
                TextBox Degree = GridView1.Rows[i].FindControl("txtDegree") as TextBox;
                TextBox Title = GridView1.Rows[i].FindControl("txtTitle") as TextBox;
                TextBox Email = GridView1.Rows[i].FindControl("txtEmail") as TextBox;
                TextBox Institution = GridView1.Rows[i].FindControl("txtInstitution") as TextBox;

                if(Name!=null)
                {

                lstAuthors[i].Name = Name.Text;
                lstAuthors[i].MName = MName.Text;
                lstAuthors[i].LName = LName.Text;
                lstAuthors[i].Degree = Degree.Text;
                lstAuthors[i].Title = Title.Text;
                lstAuthors[i].Email = Email.Text;
                lstAuthors[i].Institution = Institution.Text;
                }
            }
            OtherAuthors obj1 = new OtherAuthors();
            obj1.Count = "Author "+(lstAuthors.Count+1).ToString()+":";
           obj1.Name="";
           lstAuthors.Add(obj1);

           GridView1.DataSource = lstAuthors;
           GridView1.DataBind();
           for (int i = 0; i < GridView1.Rows.Count; i++)
           {
               if (GridView1.Rows.Count - 1 == i)
                   GridView1.Rows[i].Cells[8].Visible = true;
               else
                   GridView1.Rows[i].Cells[8].Visible = false;
           }
           Session["lstAuthors"] = lstAuthors;
        }
        MultipleModalitySelect1.hideChosebutton = true;

    }

private bool IsValied () {boolошибка = ложь;

            TextBox Name = GridView1.Rows[0].FindControl("txtName") as TextBox;
            TextBox MName = GridView1.Rows[0].FindControl("txtMName") as TextBox;
            TextBox LName = GridView1.Rows[0].FindControl("txtLName") as TextBox;
            TextBox Degree = GridView1.Rows[0].FindControl("txtDegree") as TextBox;
            TextBox Title = GridView1.Rows[0].FindControl("txtTitle") as TextBox;
            TextBox Email = GridView1.Rows[0].FindControl("txtEmail") as TextBox;
            TextBox Institution = GridView1.Rows[0].FindControl("txtInstitution") as TextBox;
            Label lblAuthor = GridView1.Rows[0].FindControl("lblAuthor") as Label;

            if (Name.Text.Length == 0 || LName.Text.Length == 0 || Degree.Text.Length == 0 ||Title.Text.Length == 0 || Email.Text.Length == 0 || Institution.Text.Length == 0)
            {
                lblAuthor.Visible = true;
                error = true;

            }
            else
            {
                lblAuthor.Visible = false;
            }

}

Ответы [ 2 ]

3 голосов
/ 16 мая 2011

Вы использовали ValidationGroup="a" группы проверки на своей кнопке Далее, но вы не использовали ее на Обязательном поле Валидатор.Но вы использовали его в валидаторе электронной почты.

Вы должны быть совместимы с элементом управления Validation и с тем, нужно ли включать проверку для всех элементов управления и элементов управления Button для его работы.

<asp:Button ID="btnNext" runat="server" ValidationGroup="a" CausesValidation="true" Text="Next" class="next btn" onclick="btnNext_Click"/>
0 голосов
/ 16 мая 2011

Я думаю, что вы должны начать новую страницу и протестировать сценарий с гораздо меньшим случаем, и сначала это сработает.Затем добавьте еще поля.

Если вам все еще нужна помощь с этой меньшей страницей, опубликуйте ее для справки - нам будет легче ее понять.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...