我有两个dev express下拉控件,一个包含“产品类型”,一个包含“交付方式”。每个元素都有一个彼此直接相关的元素,如果选择了一个,则也应选择另一个。
当前控件被声明为:
<dx:ASPxComboBox runat="server" ID="cbDeliveryMethod" ValueField="Id"
TextField="Name" ClientIDMode="Static" ClientInstanceName="cbDeliveryMethod">
<ClientSideEvents SelectedIndexChanged="cbDeliveryMethodSelection" />
</dx:ASPxComboBox>
<dx:ASPxComboBox runat="server" ID="cbProductType" ValueField="Id"
ValueType="System.String" TextField="Name" ClientIDMode="Static"
ClientInstanceName="cbProductType">
<ClientSideEvents SelectedIndexChanged="cbProductTypeSelection" />
</dx:ASPxComboBox>
控件呈现为:
<input class="..." id="cbProductType_I" name="ct100$MainContent$uc...$...cbProductType">
....
<input class="..." id="cbDeliveryMethod_I" name="ct100$MainContent$uc...$...$cbDeliveryMethod" >
并且我的javascript当前定义为:
function cbProductTypeSelection(s, e) {
console.log("product type");
var alertMe = $('#cbDeliveryMethod_I').val();
console.log(alertMe); // :(
// $('#cbDeliveryMethod').val('required delivery method here');
debugger;
}
function cbDeliveryMethodSelection(s, e) {
console.log("delviery method");
var alertMe = $('#cbProductType').val();
console.log(alertMe); // :(
// $('#cbProductType').val('required product type here');
debugger;
}
我正在尝试使用javascript来完成所有操作,以避免页面回发。记录器当前返回空字符串,因此我被认为我没有正确检索控件。我一直在尝试将此资源用作参考:Dev Express & JQuery
最佳答案
使用客户端的GetValue / SetValue或GetText / SetText方法:
...
function cbProductTypeSelection(s, e) {
var ownValue = s.GetValue();
var ownText = s.GetText();
//ClientInstanceName="cbDeliveryMethod"
var cbDeliveryMethodValue = cbDeliveryMethod.GetValue();
var cbDeliveryMethodText = cbDeliveryMethod.GetText();
}
function cbDeliveryMethodSelection(s, e) {
var ownValue = s.GetValue();
var ownText = s.GetText();
//ClientInstanceName="cbProductType"
var cbProductTypeValue = cbProductType.GetValue();
var cbProductTypeText = cbProductType.GetText();
}