0

選択した値をページ 1 の DDL リストのクエリ文字列変数に格納し、それをページ 2 で、ユーザー コントロール ページからの同じドロップダウン リストに割り当てようとしました。しかし、2 ページ目の DDList に値を代入しているときに、配列インデックスの範囲外の例外または null 値の例外が発生します。

クエリ文字列が正しいことをデバッグして確認しましたが、この値を 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 コントロールを使用しました

ページ 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 ページ

<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 に答える