Jag har en söksida där sökkontrollerna skrivs ut dynamiskt beroende på vilken kategori man valt at söka på (dropdownmeny högst upp på sidan). Kontrollerna deklareras som objekt i codebehindfilen och läggs till i en panel för att kunna användas i gränssittet. Detta funkar i princip bra men det finns en bugg som jag inte lyckas få bort.
Av någon anledning så ligger värdena kvar i kontrollerna när man skriver i något men sedan byter kategori utan att söka. Jag har trotts många försök inte lyckats bli av med detta och är något konfunderad över varför det blir såhär. (En tanke är att det buggar för att kontrollernas ID heter likadant även om man byter kategori)
Jag har bl.a. testat att ta bort Viewstate på kontrollerna men inget hjälper.
aspx-fil:
<form id="frmSearch" name="frmSearch" runat="server">
<asp:DropDownList ID="ddlCategory" Runat="server" CssClass="menu" AutoPostBack="True"></asp:DropDownList>
<br>
<!-- sökkontrollerna läggs till programmatiskt i codebehindfilen -->
<asp:PlaceHolder ID="plhSearch" Runat="server" EnableViewState="False"></asp:PlaceHolder>
<br>
<img src="images/pixel.gif" height="10"><br>
<asp:Button ID="btnSearch" Runat="server" CssClass="btn" Text="Sök" OnClick="Search"></asp:Button>
<asp:Button ID="btnViewAll" Runat="server" CssClass="btn" Text="Visa alla" OnClick="viewAll"></asp:Button>
<asp:Label id="lblMessage" Runat="Server" CssClass="error"></asp:Label>
<br><br><br>
<asp:placeholder ID="plhResult" Runat="server"></asp:placeholder>
</form>
exempel på hur det ser ut i codebehind:
// denna kod ligger inom en for-loop
TextBox objTxtAttr = new TextBox();
objTxtAttr.ID = "txtAttr" + i;
objTxtAttr.CssClass = "TextField";
plhSearch.Controls.Add(objTxtAttr);
arrControls.Add(objTxtAttr); //sparar en referens till kontrollen
Har ni några förslag ?