我使用後臺代碼動態綁定我的下拉列表,當用戶更改下拉列表並提交購買時,selectedvalue始終爲空。asp.net - 獲取下拉列表的問題
我試過ddl.SelectedItem.ToString();和ddl.SelectedValue.ToString();但沒有工作。同樣對於這兩個代碼隱藏在下面的函數中,我似乎無法使用void方法而不是使用需要返回值和參數的函數,是否有使用無參數的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)」,否則無論你在viewstate中有什麼被覆蓋。 – ub1k