viewstate of dynamic text boxs
-
private void Descriptiontable()
{DescriptionClass dcss = new DescriptionClass(); dcss.ProjectIDp = Convert.ToInt32(Session\["ProjectId"\].ToString()); // dcss.ProjectIDp = Convert.ToInt32(ProjectIDText.Text); DataSet ds = new DataSet(); dtDesc = dcss.DynamicDataSet().Tables\[0\]; dtDesc.Columns.Add("DescriptionName1"); dtDesc.Columns.Add("Date1"); dtDesc.Columns.Add("Description1"); int intID = 1; foreach (DataRow drow in dtDesc.Rows) { drow\["ProjectID"\] = intID++; drow\["DescriptionName1"\] = "qwe"; drow\["Date1"\] = ""; drow\["Description1"\] = "asdasd"; } Session\["dtDesc"\] = dtDesc; if (dtDesc.Rows.Count == 0) { adddescription(); } else { Bindrepeater(); } } private void adddescription() { dtDesc = (DataTable)Session\["dtDesc"\]; DataRow descRow = dtDesc.NewRow(); // descRow\["ProjectID"\] = dtDesc.Rows.Count + 1; descRow\["DescriptionName"\] = ""; descRow\["Date"\] =""; descRow\["Description"\] = ""; dtDesc.Rows.Add(descRow); Session\["dtDesc"\] = dtDesc; Bindrepeater(); } private void Bindrepeater() { if (Session\["dtDesc"\] == null) { Descriptiontable(); } dtDesc = (DataTable)Session\["dtDesc"\]; DataView dv = dtDesc.DefaultView; if (dv.Count == 0) { adddescription(); } Rptdescription.DataSource = dv; Rptdescription.DataBind(); }
//button click event
adddescription();This is how im creating dynamic textboxes in repeater... But how do i store viewstate of those textboxs on btnclick event... so that values of text boxs may not dissappear on post back....
-
private void Descriptiontable()
{DescriptionClass dcss = new DescriptionClass(); dcss.ProjectIDp = Convert.ToInt32(Session\["ProjectId"\].ToString()); // dcss.ProjectIDp = Convert.ToInt32(ProjectIDText.Text); DataSet ds = new DataSet(); dtDesc = dcss.DynamicDataSet().Tables\[0\]; dtDesc.Columns.Add("DescriptionName1"); dtDesc.Columns.Add("Date1"); dtDesc.Columns.Add("Description1"); int intID = 1; foreach (DataRow drow in dtDesc.Rows) { drow\["ProjectID"\] = intID++; drow\["DescriptionName1"\] = "qwe"; drow\["Date1"\] = ""; drow\["Description1"\] = "asdasd"; } Session\["dtDesc"\] = dtDesc; if (dtDesc.Rows.Count == 0) { adddescription(); } else { Bindrepeater(); } } private void adddescription() { dtDesc = (DataTable)Session\["dtDesc"\]; DataRow descRow = dtDesc.NewRow(); // descRow\["ProjectID"\] = dtDesc.Rows.Count + 1; descRow\["DescriptionName"\] = ""; descRow\["Date"\] =""; descRow\["Description"\] = ""; dtDesc.Rows.Add(descRow); Session\["dtDesc"\] = dtDesc; Bindrepeater(); } private void Bindrepeater() { if (Session\["dtDesc"\] == null) { Descriptiontable(); } dtDesc = (DataTable)Session\["dtDesc"\]; DataView dv = dtDesc.DefaultView; if (dv.Count == 0) { adddescription(); } Rptdescription.DataSource = dv; Rptdescription.DataBind(); }
//button click event
adddescription();This is how im creating dynamic textboxes in repeater... But how do i store viewstate of those textboxs on btnclick event... so that values of text boxs may not dissappear on post back....
Where you are creating dynamic textboxes in this code? Or you defined static html inside Repeater?
Arun Jacob http://codepronet.blogspot.com/
-
Where you are creating dynamic textboxes in this code? Or you defined static html inside Repeater?
Arun Jacob http://codepronet.blogspot.com/
yes ststic html defined..
<asp:Repeater ID="Rptdescription" OnItemCommand="Rptdescription_ItemCommand" runat="server">
<HeaderTemplate></HeaderTemplate>
<ItemTemplate>
<tr style="width:100%">
<td colspan=16>
Description Name/Type & Source <asp:TextBox CssClass="input" ID="TextName" Width="240px" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "DescriptionName") %>'></asp:TextBox>
<!-- <asp:Label ID="TxtName" runat="server" Visible="false" Text='<%# DataBinder.Eval(Container.DataItem, "DescriptionName") %>'></asp:Label>
--></td> <td colspan=8>
<!--<asp:Label ID="TxtDate" runat="server" Visible="false" Text='<%# DataBinder.Eval(Container.DataItem, "Date") %>'></asp:Label>
-->Date <asp:TextBox ID="TextDate" runat="server" Text='<%# string.Format("{0:dd/MM/yyyy}",Eval("Date")) %>'></asp:TextBox><cc1:CalendarExtender Format="dd/MM/yyyy" ID="CalendarExtender1" runat="server" TargetControlID="TextDate" PopupButtonID="ImageButton1" > </cc1:CalendarExtender> <asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/Images/Calendar\_scheduleHS.png" ValidationGroup="false" /> <br /> <asp:RegularExpressionValidator ID="RegularExpressionValidator14" runat="server" ValidationExpression="(0\[1-9\]|\[12\]\[0-9\]|3\[01\])\[- /.\](0\[1-9\]|1\[012\])\[- /.\](19|20)\\d\\d" Display="Dynamic" ControlToValidate="TextDate" ErrorMessage="Please Enter in dd/mm/yyyy format"></asp:RegularExpressionValidator> </td> </tr> <tr style="width:100%"> <td colspan=20 > <!-- <asp:Label ID="TxtDescription" Visible="false" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Description") %>'></asp:Label>
--> <asp:TextBox CssClass="input" ID="TextDescript" TextMode="MultiLine" Columns="70" Rows="5" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Description") %>'></asp:TextBox>
</td>
<td><asp:LinkButton ID="delete" CommandName="Delete" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "id") %>' ValidationGroup="false" runat="server">delete</asp:LinkButton></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</FooterTemplate>
</as -
yes ststic html defined..
<asp:Repeater ID="Rptdescription" OnItemCommand="Rptdescription_ItemCommand" runat="server">
<HeaderTemplate></HeaderTemplate>
<ItemTemplate>
<tr style="width:100%">
<td colspan=16>
Description Name/Type & Source <asp:TextBox CssClass="input" ID="TextName" Width="240px" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "DescriptionName") %>'></asp:TextBox>
<!-- <asp:Label ID="TxtName" runat="server" Visible="false" Text='<%# DataBinder.Eval(Container.DataItem, "DescriptionName") %>'></asp:Label>
--></td> <td colspan=8>
<!--<asp:Label ID="TxtDate" runat="server" Visible="false" Text='<%# DataBinder.Eval(Container.DataItem, "Date") %>'></asp:Label>
-->Date <asp:TextBox ID="TextDate" runat="server" Text='<%# string.Format("{0:dd/MM/yyyy}",Eval("Date")) %>'></asp:TextBox><cc1:CalendarExtender Format="dd/MM/yyyy" ID="CalendarExtender1" runat="server" TargetControlID="TextDate" PopupButtonID="ImageButton1" > </cc1:CalendarExtender> <asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/Images/Calendar\_scheduleHS.png" ValidationGroup="false" /> <br /> <asp:RegularExpressionValidator ID="RegularExpressionValidator14" runat="server" ValidationExpression="(0\[1-9\]|\[12\]\[0-9\]|3\[01\])\[- /.\](0\[1-9\]|1\[012\])\[- /.\](19|20)\\d\\d" Display="Dynamic" ControlToValidate="TextDate" ErrorMessage="Please Enter in dd/mm/yyyy format"></asp:RegularExpressionValidator> </td> </tr> <tr style="width:100%"> <td colspan=20 > <!-- <asp:Label ID="TxtDescription" Visible="false" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Description") %>'></asp:Label>
--> <asp:TextBox CssClass="input" ID="TextDescript" TextMode="MultiLine" Columns="70" Rows="5" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Description") %>'></asp:TextBox>
</td>
<td><asp:LinkButton ID="delete" CommandName="Delete" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "id") %>' ValidationGroup="false" runat="server">delete</asp:LinkButton></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</FooterTemplate>
</asOkay.Then before creating new row and binding it to repeater, you need to save the edited data in text boxes to some persisting object.
Arun Jacob http://codepronet.blogspot.com/