ASP DropdownListBox Default not working

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • seanwalsh
    New Member
    • Mar 2008
    • 5

    ASP DropdownListBox Default not working

    Hi

    I have a DDLB in a gridview that allows record entry. The default is set by the QueryString. Here is the code:

    Code:
                    <FooterTemplate>
                        <asp:DropDownList ID="MenuInsert" runat="server" OnDataBound="test">
                            <asp:ListItem Text="" Value=""></asp:ListItem>
                            <asp:ListItem Text="Top Menu" Value="Top Menu" Selected="<%if(1==1){Response.Write('True')}else{Response.Write('False')};%>"></asp:ListItem>
                            <asp:ListItem Text="Side Menu" Value="Side Menu" Selected="<%if(1==2){Response.Write('True')}else{Response.Write('False')};%>"></asp:ListItem>
                        </asp:DropDownList>
                        <asp:RequiredFieldValidator ID="valMenuInsert" runat="server" Display="Dynamic" ControlToValidate="MenuInsert" ErrorMessage="NB!" ValidationGroup="valInsert"></asp:RequiredFieldValidator>
                    </FooterTemplate>
    This gives me the error:
    System.Web.Http Exception: Cannot have multiple items selected in a DropDownList.

    Previously, I had tried:
    Code:
        protected void Page_Load(object sender, EventArgs e)
        {
            DropDownList MenuInsert = MyGridView.FooterRow.FindControl("MenuInsert") as DropDownList;
            MenuInsert.SelectedValue = Server.UrlDecode(Request.QueryString["Menu"]);
        }
    That sort of worked. On a fresh load, it set the default. But after editing/deleting/inserting a record in the grid, ie. after postback, then it remained blank, wasn't set.

    any help why/how?
  • nateraaaa
    Recognized Expert Contributor
    • May 2007
    • 664

    #2
    Originally posted by seanwalsh
    Hi

    I have a DDLB in a gridview that allows record entry. The default is set by the QueryString. Here is the code:

    Code:
     <FooterTemplate>
    <asp:DropDownList ID="MenuInsert" runat="server" OnDataBound="test">
    <asp:ListItem Text="" Value=""></asp:ListItem>
    <asp:ListItem Text="Top Menu" Value="Top Menu" Selected="<%if(1==1){Response.Write('True')}else{Response.Write('False')};%>"></asp:ListItem>
    <asp:ListItem Text="Side Menu" Value="Side Menu" Selected="<%if(1==2){Response.Write('True')}else{Response.Write('False')};%>"></asp:ListItem>
    </asp:DropDownList>
    <asp:RequiredFieldValidator ID="valMenuInsert" runat="server" Display="Dynamic" ControlToValidate="MenuInsert" ErrorMessage="NB!" ValidationGroup="valInsert"></asp:RequiredFieldValidator>
    </FooterTemplate>
    This gives me the error:
    System.Web.Http Exception: Cannot have multiple items selected in a DropDownList.

    Previously, I had tried:
    Code:
     protected void Page_Load(object sender, EventArgs e)
    {
    DropDownList MenuInsert = MyGridView.FooterRow.FindControl("MenuInsert") as DropDownList;
    MenuInsert.SelectedValue = Server.UrlDecode(Request.QueryString["Menu"]);
    }
    That sort of worked. On a fresh load, it set the default. But after editing/deleting/inserting a record in the grid, ie. after postback, then it remained blank, wasn't set.

    any help why/how?
    In your page_load event use the code you already tried but put that code inside of a !IsPostBack conditional statement.
    Code:
     protected void Page_Load(object sender, EventArgs e)
    {
    if(!IsPostBack)
    {
    DropDownList MenuInsert = MyGridView.FooterRow.FindControl("MenuInsert") as DropDownList;
    MenuInsert.SelectedValue = Server.UrlDecode(Request.QueryString["Menu"]);
    }
    }
    Nathan

    Comment

    Working...