0

Java のサーバーサイド コードと .Net のクライアント ページがあります。ここで、Java のサーバーサイド アクション クラスから .Net にドロップダウン リストをロードする必要があります。これを行うために、次のように asp ドロップダウンリストを作成しました。

<asp:DropDownList ID="invoiceYear" runat="server" OnLoad='<%#GetYearRange()%>'  
    Width="150px" AutoPostBack="True">
</asp:DropDownList>

次のように、aspx.cs にメソッド GetYearRange があります。

[WebMethod]
public static string GetYearRange()
{
    System.Diagnostics.Debug.WriteLine("I am in");
    string strNewValue = "page=" + "" + "&rows=" + "" + "&sort=" + "" + "&order=" + ""; 
    string ss = ServerUtil.getServerString(strNewValue, "/invoice/invoice!getYearRange.action");
    System.Diagnostics.Debug.WriteLine("ss-->" + ss);
    return ss;
}

その方法にはなりません。このメソッドからドロップダウンリストに結果を取得する方法を教えてください??

4

1 に答える 1

0

[WebMethod]属性で装飾しないでください。また、メソッドを正しく呼び出していません。これを値にバインドする場合は、そのデータソースを適切なコレクションに設定する必要があります。現在選択されている値を設定しようとしている場合は、具体的に設定する必要があります。私が持っている本当の質問は、このコードで何をしようとしているのかということです。

サービスコールから受け取った値を使用してドロップダウンリストをロードしようとしている場合:

protected void Page_Load(object sender, EventArgs e)
{
    // GetYearRange() will have to return at least a string[]
    // It would be better if it was a ListItem[] or a List<ListItem>
    invoiceYear.DataSource = GetYearRange();
    invoiceYear.DataBind();
}

すでにDataBoundを持っているが、選択したアイテムをサービスの結果にする必要がある場合は、OnDataBoundイベントを使用する必要があります。

<asp:DropDownList ID="invoiceYear" runat="server" OnDataBound="invoiceYear_DataBound"  
    Width="150px" AutoPostBack="True">
</asp:DropDownList>

...

protected void invoiceYear_DataBound(object sender, EventArgs e)
{
     invoiceYear.SelectedValue = GetYearRange();
}
于 2012-10-25T19:33:34.893 に答える