코드 숨김 기능을 사용하여 드롭 다운 목록을 동적으로 바인딩합니다. 사용자가 드롭 다운 목록을 변경하고 구매를 제출하면 selectedvalue는 항상 비어 있습니다.asp.net - 문제가 dropdownlist을 얻는 것
나는 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