C
codputer
I have the following datagrid defined (subset of complete definition) where I
have placed a text box in the header template (unbounded). I'm using this
text box to capture filtering criteria relevant to that row. Everything
works great, but I loose the value of the textbox when the page is returned
to the client.
As this is an unbounded text box, I thought that the view state would retain
the text box value. I suspect that because the datagrid ItemTemplate is
bound however, the databind event clears the complete grid, regardless if
countrols or bound or not.
I've tried putting the value in after the databind event, but that doesn't
work. How can I keep the value of these textboxes from disappearing after a
postback? (I've marked the textboxes with ***, see below)
Thanks in advance for your time,
Richard
<form id="Form1" method="post" runat="server">
<P><uc1:bannercontrol id="BannerControl1"
runat="server"></uc1:bannercontrol></P>
<P><asp:datagrid id=BookingNavigatorDataGrid runat="server" Width="896px"
AllowSorting="True" AllowPaging="True" AutoGenerateColumns="False"
DataKeyField="BookingID" DataSource="<%# BookingNavigatorDataView %>">
<HeaderStyle Font-Bold="True"></HeaderStyle>
<Columns>
<asp:TemplateColumn SortExpression="FullName" HeaderText="Patient Name">
<HeaderStyle Width="175px"></HeaderStyle>
<HeaderTemplate>
<asp:LinkButton id="lnkFullNameSort" runat="server" Width="114px"
CommandName="Sort" CommandArgument="FullName">Patient Name</asp:LinkButton>
***this is the text box I wish to preserve!****
<asp:TextBox id="txtFilterOn_FullName" runat="server"
OnTextChanged="txtFilterOn" BackColor="#C0FFFF" EnableViewState="True"
AutoPostBack="True"></asp:TextBox>
</HeaderTemplate>
<ItemTemplate>
<asp:LinkButton id=lnkPatientID runat="server" Width="170px"
CommandName="Select" CommandArgument="PatientInfo" Text='<%#
DataBinder.Eval(BookingNavigatorDataView, "[0].FullName") %>'>
</asp:LinkButton>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id=TextBox1 runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.FullName") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn SortExpression="HomePhone" HeaderText="Home Phone">
<HeaderStyle Width="125px"></HeaderStyle>
<HeaderTemplate>
<asp:LinkButton id="lnkHomePhoneSort" runat="server" Width="114px"
CommandArgument="HomePhone" CommandName="Sort">Home Phone</asp:LinkButton>
***this is the text box I wish to preserve!****
<asp:TextBox id="txtFilterOn_HomePhone" runat="server" Width="114px"
OnTextChanged="txtFilterOn" AutoPostBack="True"
BackColor="#C0FFFF"></asp:TextBox>
</HeaderTemplate>
<ItemTemplate>
<asp:LinkButton id=lnkHomePhone runat="server" Width="154px"
CommandArgument="PatientInfo" CommandName="Select" Text='<%#
DataBinder.Eval(BookingNavigatorDataView, "[0].HomePhone") %>'>
</asp:LinkButton>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id=TextBox2 runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.HomePhone") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
have placed a text box in the header template (unbounded). I'm using this
text box to capture filtering criteria relevant to that row. Everything
works great, but I loose the value of the textbox when the page is returned
to the client.
As this is an unbounded text box, I thought that the view state would retain
the text box value. I suspect that because the datagrid ItemTemplate is
bound however, the databind event clears the complete grid, regardless if
countrols or bound or not.
I've tried putting the value in after the databind event, but that doesn't
work. How can I keep the value of these textboxes from disappearing after a
postback? (I've marked the textboxes with ***, see below)
Thanks in advance for your time,
Richard
<form id="Form1" method="post" runat="server">
<P><uc1:bannercontrol id="BannerControl1"
runat="server"></uc1:bannercontrol></P>
<P><asp:datagrid id=BookingNavigatorDataGrid runat="server" Width="896px"
AllowSorting="True" AllowPaging="True" AutoGenerateColumns="False"
DataKeyField="BookingID" DataSource="<%# BookingNavigatorDataView %>">
<HeaderStyle Font-Bold="True"></HeaderStyle>
<Columns>
<asp:TemplateColumn SortExpression="FullName" HeaderText="Patient Name">
<HeaderStyle Width="175px"></HeaderStyle>
<HeaderTemplate>
<asp:LinkButton id="lnkFullNameSort" runat="server" Width="114px"
CommandName="Sort" CommandArgument="FullName">Patient Name</asp:LinkButton>
***this is the text box I wish to preserve!****
<asp:TextBox id="txtFilterOn_FullName" runat="server"
OnTextChanged="txtFilterOn" BackColor="#C0FFFF" EnableViewState="True"
AutoPostBack="True"></asp:TextBox>
</HeaderTemplate>
<ItemTemplate>
<asp:LinkButton id=lnkPatientID runat="server" Width="170px"
CommandName="Select" CommandArgument="PatientInfo" Text='<%#
DataBinder.Eval(BookingNavigatorDataView, "[0].FullName") %>'>
</asp:LinkButton>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id=TextBox1 runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.FullName") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn SortExpression="HomePhone" HeaderText="Home Phone">
<HeaderStyle Width="125px"></HeaderStyle>
<HeaderTemplate>
<asp:LinkButton id="lnkHomePhoneSort" runat="server" Width="114px"
CommandArgument="HomePhone" CommandName="Sort">Home Phone</asp:LinkButton>
***this is the text box I wish to preserve!****
<asp:TextBox id="txtFilterOn_HomePhone" runat="server" Width="114px"
OnTextChanged="txtFilterOn" AutoPostBack="True"
BackColor="#C0FFFF"></asp:TextBox>
</HeaderTemplate>
<ItemTemplate>
<asp:LinkButton id=lnkHomePhone runat="server" Width="154px"
CommandArgument="PatientInfo" CommandName="Select" Text='<%#
DataBinder.Eval(BookingNavigatorDataView, "[0].HomePhone") %>'>
</asp:LinkButton>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id=TextBox2 runat="server" Text='<%#
DataBinder.Eval(Container, "DataItem.HomePhone") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>