通过查询字符串将值分配给下拉列表

时间:2013-01-15 09:03:01

标签: c# asp.net .net telerik

我将所选值存储在查询字符串变量的第1页上的DDL列表中,然后尝试将其在第2页上分配到来自用户控制页面的同一下拉列表中。但是在将值分配给第2页的DDList时,我得到的数组索引超出绑定异常或空值异常。

我已调试并验证查询字符串是否正确,但无法将此值分配给ddl list.Code粘贴在下面:

 <telerik:RadComboBox 
      ID="cmbSearchOaO" 
      runat="server"
      AutoPostBack="true"
      AppendDataBoundItems="true" 
      Width="200px"
      DataSourceID="odsOwnedAndOperated"
      DataTextField="Owned_And_Operated_Nm"
      DataValueField="Owned_And_Operated_Id"
      OnSelectedIndexChanged="PopulateApplicationTypeDropDown">
 </telerik:RadComboBox>


  ddl2.SelectedValue = Request.QueryString["No2"];           
  ddl2.FindItemByValue(Request.QueryString["No2"].ToString()).Selected = true;

正确的值填充在Request.QueryString["No2"]中,但我需要将其存储在LHS上,即ddl列表中。

1 个答案:

答案 0 :(得分:0)

试试这个解决方案。在我的示例中,我使用了ASP.NET DropdownList控件

保存第1页和第2页使用的下拉列表的用户控件

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="DDlUserControl.ascx.cs" Inherits="WebApplication2.DDlUserControl" %>
<asp:DropDownList ID="ddlTest" runat="server" AutoPostBack="True" Height="20px" 
    Width="223px">
    <asp:ListItem Value="1">Item 1</asp:ListItem>
    <asp:ListItem Value="2">Item 2</asp:ListItem>
    <asp:ListItem Value="3">Item 3</asp:ListItem>
    <asp:ListItem Value="4">Item 4</asp:ListItem>
    <asp:ListItem Value="5">Item 5</asp:ListItem>
    <asp:ListItem Value="6">Item 6</asp:ListItem>
    <asp:ListItem Value="7">Item 7</asp:ListItem>
    <asp:ListItem Value="8">Item 8</asp:ListItem>
</asp:DropDownList>

Page1 html page

<p>
        <uc1:DDlUserControl ID="DDlUserControl1" runat="server" />
    </p>
    <p>
        <asp:Button ID="btnSubmit" runat="server" onclick="btnSubmit_Click" 
            Text="Go to Page 2" />
    </p>

Page1代码

protected void btnSubmit_Click(object sender, EventArgs e)
        {
            var ddl = DDlUserControl1.FindControl("ddlTest") as DropDownList;
            Response.Redirect("Page2.aspx?no="+ddl.SelectedValue);
        }

Page2 html

<div>

        This is page 2<br />
        <br />
        <uc1:DDlUserControl ID="DDlUserControl1" runat="server" />

    </div>

Page2代码

protected void Page_Load(object sender, EventArgs e)
        {
            var selectedVal = Request.QueryString["no"];
            var ddl = DDlUserControl1.FindControl("ddlTest") as DropDownList;
            ddl.SelectedValue = selectedVal;
        }