簡體   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