0

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

我已调试并验证查询字符串是否正确,但无法将此值分配给 ddl 列表。下面粘贴的代码:

 <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 列表中。

4

1 回答 1

0

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

保存 page1 和 page 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>

第1页html页面

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

后面的第 1 页代码

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

第 2 页 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;
        }
于 2013-01-15T14:14:28.967 回答