我有兩個下拉列表在detailsview中的兩個不同的字段內,第一個確定第二個值的值。DropDownList Autopostback清除字段,恢復爲默認
當我從第一個ddl中選擇一個值時,autopostback將刪除detailsview中的所有數據,並將第一個下拉列表恢復爲第一個選擇。
此外,當我從列表中選擇(改變DDL選擇一次以上),它會拋出:
數據綁定方法如eval()函數,XPath的(),並綁定()只能在使用數據綁定控件的上下文。
描述:執行當前Web請求期間發生未處理的異常。請查看堆棧跟蹤以獲取有關該錯誤的更多信息以及源代碼的位置。
異常詳細信息:System.InvalidOperationException:數據綁定方法(如Eval(),XPath()和Bind()只能用於數據綁定控件的上下文中。
源錯誤:
[沒有相關的源行]
------First DDL
<asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SQLLEAVECODE"
DataTextField="LEAVETYPE" DataValueField="LEAVECODE"
onselectedindexchanged="DropDownList1_SelectedIndexChanged"
AppendDataBoundItems="True" ViewStateMode="Enabled" AutoPostBack="True"
SelectedValue='<%# BIND("REQLEAVECODE") %>' Width="80px">
<asp:ListItem> </asp:ListItem>
</asp:DropDownList>
-------Second DDL
<asp:DropDownList ID="DropDownList2" runat="server" DataSourceID="SqlDataSource1"
DataTextField="REASON" DataValueField="REASON"
SelectedValue='<%# Bind("leavetype") %>'>
</asp:DropDownList>
---------page load
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DetailsView1.DataBind();
}
}
--------DDL 1 selectedIndexChange
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList lvtype = (DropDownList)(DetailsView1.FindControl("DropDownList1"));
DropDownList lvreason = (DropDownList)(DetailsView1.FindControl("DropDownList2"));
Label27.Text = lvtype.SelectedValue.ToString();
DetailsView1.Fields[4].Visible = true;
}
試試這個,你可能會有一些樂趣:http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/CascadingDropDown/CascadingDropDown.aspx – bugnuker 2012-08-13 23:21:41
謝謝,我已經通過了,但我似乎有問題,因爲ddl是在詳細視圖中,所以我無法讓級聯下拉列表在我的程序中正常工作 – user1596472 2012-08-15 14:20:44