0
我有2個下拉列表在窗體視圖的編輯項模板內。第一個下拉菜單包含一列車輛,第二列車輛模型。模型列表需要通過從Makes下拉列表中進行選擇來過濾。在asp.net中級聯下拉的數據綁定錯誤
這裏有2下拉列表
<telerik:RadComboBox ID="RadComboBoxAssetMake" runat="server" DataTextField="AssetMakeName"
SelectedValue='<%# Bind("MakeId") %>' DataSourceID="odsAllAssetMakes" AutoPostBack="True" DataValueField="Id" Skin="Vista"
Width="212px" OnSelectedIndexChanged="RadComboBoxAssetMake_SelectedIndexChanged">
<telerik:Items>
<telerik:RadComboBoxItem Text="" Value="" />
</telerik:Items>
</telerik:RadComboBox>
<telerik:RadComboBox ID="RadComboBoxAssetModel" runat="server" DataTextField="AssetModelName"
SelectedValue='<%# Bind("ModelId") %>' DataSourceID="odsAssetModelByMake" DataValueField="Id" Skin="Vista" Width="212px">
<telerik:Items>
<telerik:RadComboBoxItem Text="" Value="" />
</telerik:Items>
</telerik:RadComboBox>
起初我想使用的模型對象數據源的控制選擇參數降下來了。使用該參數從Make下拉菜單中獲取值。但是,這似乎不起作用,因爲對象數據源上的選擇參數無法在窗體視圖中看到該控件。
所以現在我試圖在對象數據源上使用會話選擇參數。
<asp:ObjectDataSource runat="server" ID="odsAssetModelByMake" DataObjectTypeName="GPSO.Repository.AssetModel"
TypeName="GPSOnline.ATOMWebService" SelectMethod="GetAssetModelbyMake">
<SelectParameters>
<asp:SessionParameter DbType="Guid" SessionField="assetMakeId" Name="assetMakeId" />
</SelectParameters>
</asp:ObjectDataSource>
但現在我得到這個錯誤「數據綁定方法如的eval(),XPath的()和bind()只能在數據綁定控件的上下文中使用。」當我嘗試數據綁定模型下拉選擇索引更改方法的下拉列表。
protected void RadComboBoxAssetMake_SelectedIndexChanged(object o, RadComboBoxSelectedIndexChangedEventArgs e)
{
Session["assetMakeId"] = e.Value.ToString();
((RadComboBox) fvAsset.FindControl("RadComboBoxAssetModel")).DataBind();
}
有沒有一種簡單的方法來實現這種事情,這似乎像這樣常見的情形,必須有做一個標準的方式?
感謝的是,是啊,這還挺的工作,我能回去使用控制參數的對象數據源。但是,當我在「製作」下拉菜單中選擇其他項目時,我仍然遇到同樣的錯誤。雖然如果我從模型下拉列表中刪除「SelectedValue ='<%#Bind(」ModelId「)%>」,它將起作用,但是沒有選擇正確的模型。 –
你還在使用選定的索引更改處理程序? –
我也面臨同樣的問題..任何建議> ??? –