2013-01-15 60 views
0

我将查询字符串变量中选定的值存储在第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列表上。

+0

第2页的代码你指定选择值DDL2该下拉列表具有项目前检查?基本上,如果您尝试在没有任何项目的情况下为其分配所选值,则会发生错误。 –

+0

@ Jobert Enamno:是的。实际上,ddl列表是从用户控件中使用的。到2 diff页。当我传递值..ddl列表不显示任何值。让我知道如何解决这个问题。 –

+0

这意味着您的页面1和页面2仅使用1个用户控件中的ddl? –

回答

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> 

第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> 

背后

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