2013-01-15 2 views
0

쿼리 문자열 변수의 1 페이지에있는 DDL 목록에 선택한 값을 저장 한 다음 2 페이지에 사용자 컨트롤 페이지에서 오는 동일한 드롭 다운 목록에 할당하려고했습니다. 그러나 2 페이지의 DDList에 값을 할당하는 동안 배열 인덱스 예외 또는 null 값 예외가 발생합니다.쿼리 문자열을 통해 드롭 다운 목록에 값 지정

나는 디버깅 및 쿼리 문자열이 올바른지 확인하지만 아래에 붙여 넣은 DDL의 list.Code이 값을 할당 할 수없는 한 : 올바른 값은 Request.QueryString["No2"] 채워,하지만 난되어

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

LHS 즉 ddl 목록에 저장해야합니다.

+0

뒤에 2를 만드는 코드가이 DropDownList로 항목을 가지고 ddl2 선택 값을 지정하기 전에 경우를 확인 했습니까? 기본적으로 항목이없는 상태에서 선택한 값을 지정하려고하면 오류가 발생합니다. –

+0

@ Jobert Enamno : 예 .. 실제로 ddl 목록은 사용자 정의 컨트롤에서 사용됩니다. 값을 전달할 때 ..ddl 목록에 값이 표시되지 않습니다. 이 문제를 해결하는 방법을 알려주십시오. –

+0

귀하의 페이지 1과 2 페이지가 단지 사용자 정의 컨트롤에있는 1 ddl을 사용하고 있다는 것을 의미합니까? –

답변

0

이 솔루션을 사용해보십시오. 내 예제에서 나는 ASP.NET DropDownList로는

을 제어하는 ​​데 사용되는 드롭 다운리스트를 보유하고

사용자 제어가 PAGE1 페이지 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> 

에 의해 사용되는 Page1 코드 뒤

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; 
     }