私はドロップダウンリストを動的にバインドするコードビハインド関数を使用しています。ユーザーがドロップダウンリストを変更して購入を送信すると、選択された値は常に空です。asp.net - 問題がドロップダウンリストを取得しています
私は両方ddl.SelectedItem.ToString()を試しました。およびddl.SelectedValue.ToString();いずれも機能しません。また、以下の2つのコードの背後にある関数については、戻り値とパラメータを必要とする関数の代わりにvoidメソッドを使用することはできません。アドバイスをいただければ幸いです。
ありがとうございました。
<%# FormattedSize((string)Eval("Size")) %>
<%# FormattedGetSize((string)Eval("Size")) %>
インライン:
<asp:DropDownList ID="DropDownList1" runat="server" OnDataBinding='<%# FormattedSize((string)Eval("Size")) %>'></asp:DropDownList>
<a href='AddToCart.aspx?CategoryId=<%# Eval("CategoryId") %>&&ProductId=<%# Eval("ProductId") %>&&Size=<%# FormattedGetSize((string)Eval("Size")) %>' style="border: 0 none white;">
コードの後ろ:
protected string FormattedSize(string size)
{
if (size.Contains("s"))
{
DropDownList ddl = (DropDownList)FormView_Product.Row.Cells[0].FindControl("DropDownList1");
ddl.Items.Add("S");
}
if (size.Contains("m"))
{
DropDownList ddl = (DropDownList)FormView_Product.Row.Cells[0].FindControl("DropDownList1");
ddl.Items.Add("M");
}
if (size.Contains("f"))
{
DropDownList ddl = (DropDownList)FormView_Product.Row.Cells[0].FindControl("DropDownList1");
ddl.Items.Add("Freesize");
}
return null;
}
protected string FormattedGetSize(String Size)
{
DropDownList ddl = (DropDownList)FormView_Product.Row.Cells[0].FindControl("DropDownList1");
string selectedSize = ddl.SelectedItem.ToString();
return selectedSize;
}
こんにちは、私はddlのAutoPostBackをtrueに設定しましたが、動作しませんでした。何かアドバイス? – k80sg
はい。ドロップダウンリストにデータを割り当てる場合は、 'if(!IsPostBack)'だけを実行します。そうしないと、ビューステートにあるものはすべて上書きされます。 – ub1k