我有两个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();
}

10-05 21:13
查看更多