Click here to Skip to main content
16,020,186 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
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

XML
<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>


XML
<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

C#
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);
        }
    }
Posted

1 solution

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);
 
Share this answer
 
Comments
prasanna.raj 24-Jul-14 7:55am    
No friend it showing null value in txtso
D C P 24-Jul-14 8:00am    
which panel is "panelserial"
prasanna.raj 24-Jul-14 8:06am    
panel with in panel "panelserial" there only i add dynamic textbox
D C P 24-Jul-14 8:17am    
Does text box appears in the Modal Pop Up.
prasanna.raj 24-Jul-14 8:27am    
my requirement is when client enter the int val i want to create that much of textbox and want to store in database in popup if u have any idea give me...

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900