Setting OnSelectedIndexChanged based on a querystring being present

Last post 09-28-2007 5:26 PM by bduenskie. 3 replies.

Sort Posts:

  • Setting OnSelectedIndexChanged based on a querystring being present

    09-28-2007, 4:13 PM
    • Member
      53 point Member
    • bduenskie
    • Member since 11-29-2006, 11:21 PM
    • Posts 129

    I have the following dropdown control:

    <asp:DropDownList ID="ExecutiveID" runat="server" AutoPostBack="True">

    I would like to set the OnSelectedIndexChanged if a querystring is present.  Here is my code: 

     

    protected void Page_Load(object sender, EventArgs e)
    {
    ObjectDataSource1.SelectParameters.Clear();

    if (Request.QueryString["ExecutiveID"] != "" && Request.QueryString["ExecutiveID"] != null)
    {
    ObjectDataSource1.SelectParameters.Add(new QueryStringParameter("ExecutiveID", TypeCode.Int32, "ExecutiveID"));
    ExecutiveID.OnSelectedIndexChanged = "ExecutiveID_SelectedIndexChanged";
    }
    }

    protected void ExecutiveID_SelectedIndexChanged(object sender, EventArgs e)
    {
    Response.Redirect("executives.aspx?executiveid=" + ExecutiveID.SelectedValue);
    }
    It seems as though however I cannot the OnSelectedIndexChanged.  I receive the following error when trying to build:
    Error	1	'System.Web.UI.WebControls.ListControl.OnSelectedIndexChanged(System.EventArgs)' is inaccessible due to its protection level
     
    Any help on this would be most appreciated.
    Thanks 
    Filed under:
  • Re: Setting OnSelectedIndexChanged based on a querystring being present

    09-28-2007, 4:52 PM
    Answer
    • Member
      706 point Member
    • Andrey1
    • Member since 09-19-2007, 3:45 PM
    • Posts 191

    Well, obviously in this case you should parse the value of the ExecutiveID in the ExecutiveID_SelectedIndexChanged event handler:

    protected void ExecutiveID_SelectedIndexChanged(object sender, EventArgs e)
    {
         if (ExecutiveID.SelectedIndex >= 0)
             Response.Redirect("executives.aspx?executiveid=" + ExecutiveID.SelectedValue);
    }

    You don't need to assign the event handler if the query string parameter was not passed.

    Andrey.

  • Re: Setting OnSelectedIndexChanged based on a querystring being present

    09-28-2007, 5:12 PM
    Answer
    • Contributor
      2,808 point Contributor
    • jeroenm
    • Member since 03-20-2007, 9:57 PM
    • Netherlands
    • Posts 500

    Hello beduenski,

    You have to attach the event handler to the event of the dropdownlist, like:

    Executive_ID.SelectedIndexChanged += new EventHandler(ExecutiveID_SelectedIndexChanged)

    This can be done in the page_load method, but also on the webpage in the event definition part of the execute control.

    Jeroen Molenaar.

    --------------------------------
    Jeroen Molenaar.
  • Re: Setting OnSelectedIndexChanged based on a querystring being present

    09-28-2007, 5:26 PM
    • Member
      53 point Member
    • bduenskie
    • Member since 11-29-2006, 11:21 PM
    • Posts 129
    Thanks guys, both solutions worked. 
Page 1 of 1 (4 items)