繁体   English   中英

通过jQuery获取DevExpress ASPxComboBox的价值

[英]Get value of DevExpress ASPxComboBox via jQuery

我的页面上有一个动态生成的ASPxComboBox,它由几个ListEditItem对象组成。 我可能有类似这样的内容作为ASPxComboBox的来源:

foreach (KeyValuePair<string, int> row in list)
{
    ListEditItem item = new ListEditItem(row.Key.ToString(), 
        row.Value.ToString());
    ddl.Items.Add(item);
}

在此示例中,row.Value包含诸如“ 1431、5415、12897、3491”之类的值(即,随机数据库ID值)。 在调试模式下单步执行此代码可验证是否已为ListEditItems添加了正确的值。 但是,当我在生成的HTML上执行“查看源代码”时,输出看起来像这样:

<option value="1">4DAES</option>
<option value="2">631</option>
<option value="3">ACB</option>
<option value="4">ABDHP</option>

我希望它看起来像这样(请注意选项值的更改以对应于我上面提供的数据库ID :)

<option value="1431">4DAES</option>
<option value="5415">631</option>
<option value="12897">ACB</option>
<option value="3491">ABDHP</option>

我的问题是这样的:

使用jQuery,我如何获取要查找的ID的ACTUAL值? 我看到这样做的两个可能的选择:

1)ASPxComboBox控件上是否有设置告诉它呈现正确的值,而不是递增ID?

2)是否可以在控件上调用一个客户端方法来为我获取该信息? 如果可以,您可以举个例子吗?

我想出了答案:

var clientInstanceName = this.data('clientinstancename');
var combo = ASPxClientControl.GetControlCollection().GetByName(clientInstanceName);
return combo.GetSelectedItem().value;

ASPxComboBox控件具有“ ClientInstanceName”属性,该属性允许您为该对象分配名称,以便可以在客户端进行操作。 由于我是动态创建这些控件的,因此我不提前知道该名称,因此我将其添加为“ data-”属性,如下所示:

ddl.ClientInstanceName = fld.FieldName;
ddl.Attributes.Add("data-clientinstancename", fld.FieldName);

最重要的是,为控件定义ClientInstanceName属性,然后使用第一个代码段中的代码获得所需的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM