从Modal PopUp Extender获取动态文本框的值 [英] Get the value of Dynamic Textboxes from Modal PopUp Extender

查看:83
本文介绍了从Modal PopUp Extender获取动态文本框的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

全部





我有一个Modal Popup Extender(MPE),它有动态构建的文本框取决于用户输入的数量,例如用户输入6,然后将在MPE中生成6个文本框。现在我的问题是,我将如何获得这些文本框的值并保存到数据库



我的代码是



Hi, All


I have a Modal Popup Extender(MPE) , it has textboxes that are build dynamically depends on the number of input of the user, for example the user input "6" then 6 textboxes will be generated in MPE , Now my problem is, how am i going to get value of those textboxes and save to database

my code is

<td class="GrdCB">
                               <asp:GridView ID="gridview1" runat="server" AutoGenerateColumns="False" Font-Size="10px"

                                OnRowDataBound="grid1_OnRowDataBound" CellPadding="4" ForeColor="#333333" GridLines="None"

                                SelectedIndex="1" OnRowDeleting="grvStudentDetails_RowDeleting"

                                       CssClass="GrdviewCB" Width="700px">
                                <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
                                <RowStyle BackColor="#EFF3FB" />
                                <Columns>
                                    <asp:TemplateField HeaderStyle-HorizontalAlign="Center" HeaderText="Category">
                                        <ItemTemplate>
                                            <asp:TextBox ID="txtcategory" runat="server" Class="grdtxt" Width="100px"

                                                Height="17px" ontextchanged="txtcategory_TextChanged" AutoPostBack="true"></asp:TextBox>
                                                 <asp:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server" TargetControlID="txtcategory" MinimumPrefixLength="1"

                                        EnableCaching="true" CompletionSetCount="1" CompletionInterval="1000" ServiceMethod="GetCategory" CompletionListCssClass="AutoExtender">
                                    </asp:AutoCompleteExtender>
                                        </ItemTemplate>
                                        <HeaderStyle HorizontalAlign="Center" />
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderStyle-HorizontalAlign="Center" HeaderText="Model">
                                        <ItemTemplate>
                                            <asp:DropDownList ID="ddlmodel" AutoPostBack="true" class="grdtxt" runat="server"

                                                OnSelectedIndexChanged="ddlModel_SelectedIndexChanged" Width="70px">
                                            </asp:DropDownList>
                                        </ItemTemplate>
                                        <HeaderStyle HorizontalAlign="Center" />
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderStyle-HorizontalAlign="Center" HeaderText="Description">
                                        <ItemTemplate>
                                            <asp:TextBox ID="txtdescrip" runat="server" class="grdtxt" Text="" AutoPostBack="true" TextMode="MultiLine" Width="60px" Height="17px" ></asp:TextBox>
                                        </ItemTemplate>
                                        <HeaderStyle HorizontalAlign="Center" />
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderStyle-HorizontalAlign="Center" HeaderText=" Price">
                                        <ItemTemplate>
                                            <asp:TextBox ID="txtPrice" runat="server" class="grdtxt" Text="" AutoPostBack="true"

                                                OnTextChanged="txtQuantity2_TextChanged" onkeypress="AllowOnlyNumeric(event);"

                                                Width="60px"></asp:TextBox>
                                        </ItemTemplate>
                                        <HeaderStyle HorizontalAlign="Center" />
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderStyle-HorizontalAlign="Center" HeaderText="Quantity">
                                        <ItemTemplate>
                                            <asp:TextBox ID="txtQuantity" runat="server" class="grdtxt" Text="" OnTextChanged="txtQuantity1_TextChanged"

                                                AutoPostBack="true" onkeypress="AllowOnlyNumeric(event);" Width="40px"></asp:TextBox>
                                        </ItemTemplate>
                                        <HeaderStyle HorizontalAlign="Center" />
                                    </asp:TemplateField>
                                     <asp:TemplateField HeaderStyle-HorizontalAlign="Center" HeaderText="Discount">
                                        <ItemTemplate>
                                           <asp:TextBox ID="txtdiscount" runat="server" class="grdtxt" Text="" AutoPostBack="true"

                                                onkeypress="AllowOnlyNumeric(event);"

                                                Width="50px" ontextchanged="txtdiscount_TextChanged"></asp:TextBox>
                                        </ItemTemplate>
                                        <HeaderStyle HorizontalAlign="Center" />
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderStyle-HorizontalAlign="Center" HeaderText="Total">
                                        <ItemTemplate>
                                            <asp:TextBox ID="txttotamt" runat="server" class="grdtxt" Text="" AutoPostBack="true" onkeypress="AllowOnlyNumeric(event);" Width="60px"></asp:TextBox>
                                        </ItemTemplate>
                                        <HeaderStyle HorizontalAlign="Center" />
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderStyle-HorizontalAlign="Center" HeaderText="Tax">
                                        <ItemTemplate>
                                            <asp:DropDownList ID="ddTax" AutoPostBack="true" OnTextChanged="txtQuantity_TextChanged" DataValueField="id" Value="id"

                                                class="grdtxt" runat="server" Width="55px">
                                            </asp:DropDownList>
                                        </ItemTemplate>
                                        <HeaderStyle HorizontalAlign="Center" />
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderStyle-HorizontalAlign="Center" HeaderText="Tax Amount">
                                        <ItemTemplate>
                                            <asp:TextBox ID="txttaxamt" runat="server" class="grdtxt" Text="" AutoPostBack="true" onkeypress="AllowOnlyNumeric(event);" Width="60px"></asp:TextBox>
                                        </ItemTemplate>
                                        <HeaderStyle HorizontalAlign="Center" />
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderStyle-HorizontalAlign="Center" HeaderText="Total Amount">
                                        <ItemTemplate>
                                            <asp:TextBox class="txtTotal" ID="txtTotal" CssClass="grdtxt" runat="server" Width="80px"

                                                ReadOnly="True"></asp:TextBox>
                                        </ItemTemplate>
                                        <HeaderStyle HorizontalAlign="Center" />
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="">
                                        <ItemTemplate>
                                            <asp:ImageButton ID="ImageButton1" class="closeImage" runat="server" Width="20px"

                                                Height="15px" OnClick="ImageButton1_click" ImageUrl="Images/add_cross.gif" />
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="">
                                        <ItemTemplate>
                                            <asp:ImageButton ID="ImageButton2" class="closeImage" CommandName="Delete" runat="server"

                                                Width="15px" Height="10px" ImageUrl="Images/close_cross.gif" />
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                     <asp:TemplateField HeaderText="">
                                        <ItemTemplate>
                                            <asp:ImageButton ID="ImageButton3" class="closeImage" runat="server"

                                                Width="25px" Height="20px" ImageUrl="Images/serialnumber.png"

                                                ToolTip="Add SerialNumber" onclick="ImageButton3_Click"/>
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                </Columns>
                                <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
                                <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
                                <HeaderStyle BackColor="#507CD1" Font-Bold="True" Font-Size="11px" ForeColor="White" />
                                <EditRowStyle BackColor="#2461BF" />
                                <AlternatingRowStyle BackColor="White" />
                            </asp:GridView>
                            <asp:HiddenField ID="HiddenField1" runat="server"  />
                            <asp:ModalPopupExtender ID="Modelpopserial" BehaviorID="Modelpopserial" runat="server" BackgroundCssClass="modalBackground" TargetControlID="HiddenField1" PopupControlID="paneltxtpopup" CancelControlID="imgclose"></asp:ModalPopupExtender>
                                   &nbsp;
                                   <br />
                               </td>







<asp:Panel ID="paneltxtpopup" runat="server" style="width:400px; font-size:12px; display:none;">

            <table  id="tb1" class="style1" style="border:Solid 2px #5272B8; border-top-width:0px;" cellspacing="0">
      <tr style="background-color:#507CD1; color:Black;"><td class="style85">&nbsp;</td>
      <td align="left">
              <b>Add Here</b>
          </td>
          <td align="right">
             <asp:ImageButton ID="ImageButton3" runat="server" Height="16px"

                  ImageUrl="Images/closeicon.png" style="margin-right:0px;" Width="16px" />
          </td>
          <tr>
              <td>
                  &nbsp;</td>
              <td align="left">
                  Category:&nbsp;
                  <asp:Label ID="lblcategorypopup" runat="server" Text="Label" Font-Bold="true"></asp:Label>
                  &nbsp;&nbsp;&nbsp;Model:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <asp:Label ID="lblmodelpopup" runat="server" Text="Label" Font-Bold="true"></asp:Label></td>
              <td align="right">
                  &nbsp;</td>
          </tr>
          <tr>
              <td>
                  &nbsp;</td>
                   <%--<td><input id="btnAdd" onclick="AddTextBox()" type="button" value="add" /><br />
                     <div id="TextBoxContainer"><!--Textboxes will be added here --></div>
          </td>--%>
              <td align="left">
                  <asp:Panel ID="panelserial" runat="server">
                  </asp:Panel>
              </td>
              <td align="right">
                  &nbsp;</td>
          </tr>
          <tr>
              <td>
                  &nbsp;</td>
              <td align="left">
                  <asp:Button ID="btnaddpopup" runat="server" Text="Add" CssClass="button2"

                      onclick="btnaddpopup_Click" />
              </td>
              <td align="right">
                  &nbsp;</td>
          </tr>
          </table>
      </asp:Panel>





cs code





cs code

protected void ImageButton3_Click(object sender, ImageClickEventArgs e)
    {
        TextBox txtcategory = (TextBox)gridview1.Rows[0].Cells[1].FindControl("txtcategory");
        DropDownList ddlmodel = (DropDownList)gridview1.Rows[0].Cells[2].FindControl("ddlmodel");
        TextBox txtqunty = (TextBox)gridview1.Rows[0].Cells[2].FindControl("txtQuantity");

        if (txtcategory.Text == "")
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "alert('Choose Category');", true);
        }
        else if (ddlmodel.Text == "")
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "alert('Choose Model');", true);
        }
        else if (txtqunty.Text == "")
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "alert('Choose Quantity');", true);
        }
        else
        {
            lblcategorypopup.Text = txtcategory.Text;
            lblmodelpopup.Text = ddlmodel.SelectedItem.Text;

            int n = Convert.ToInt32(txtqunty.Text);
            for (int i = 0; i < n; i++)
            {
                //Assigning the textbox ID name 
                TextBox MyTextBox = new TextBox();
                MyTextBox.ID = "txtsno" + "" + ViewState["num"] + i;
                MyTextBox.Width = 200;
                MyTextBox.Height = 15;
                MyTextBox.TextMode = TextBoxMode.SingleLine;
                panelserial.Controls.Add(MyTextBox);
            }
            Modelpopserial.Show();
        }
    }
    protected void btnaddpopup_Click(object sender, EventArgs e)
    {
        try
        {
            TextBox txtsno = (TextBox)panelserial.FindControl("txtsno");
        }
        catch (Exception ex)
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", "alert('Error! :" + ex + "');", true);
        }
    }

推荐答案

You are creating textbox and assigning id As



MyTextBox.ID = \"txtsno\" + \"\" + ViewState[\"num\"] + i;



but while finding textbox control in btnaddpopup_Click you are using

TextBox txtsno = (TextBox)panelserial.FindControl(\"txtsno\");



Instead of that Try

TextBox txtsno = (TextBox)panelserial.FindControl(\"txtsno\" + \"\" + ViewState[\"num\"] + i);
You are creating textbox and assigning id As

MyTextBox.ID = "txtsno" + "" + ViewState["num"] + i;

but while finding textbox control in btnaddpopup_Click you are using
TextBox txtsno = (TextBox)panelserial.FindControl("txtsno");

Instead of that Try
TextBox txtsno = (TextBox)panelserial.FindControl("txtsno" + "" + ViewState["num"] + i);


这篇关于从Modal PopUp Extender获取动态文本框的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆