获取 Telerik 多列组合框中特定列的值

本文关键字:Telerik 组合 获取 | 更新日期: 2023-09-27 18:31:41

<telerik:RadComboBox ID="drpEmployeeItemID" runat="server" DropDownWidth="825px" EnableLoadOnDemand="true" Height="190px">
                    <HeaderTemplate>
                        <ul>
                            <li class="col1">ItemName</li>
                            <li class="col2">ColorName</li>
                            <li class="col3">StyleName</li>
                            <li class="col4">BrandName</li>
                            <li class="col5">ModelName</li>
                            <li class="col6">LotNo</li>
                            <li class="col7">BatchNo</li>
                            <li class="col8">CountryName</li>
                        </ul>
                    </HeaderTemplate>
                    <ItemTemplate>
                        <ul>
                            <li class="col1">
                                <%# DataBinder.Eval(Container.DataItem, "ItemName")%></li>
                            <li class="col2">
                                <%# DataBinder.Eval(Container.DataItem, "ColorName")%></li>
                            <li class="col3">
                                <%# DataBinder.Eval(Container.DataItem, "StyleName")%></li>
                            <li class="col4">
                                <%# DataBinder.Eval(Container.DataItem, "BrandName")%></li>
                            <li class="col5">
                                <%# DataBinder.Eval(Container.DataItem, "ModelName")%></li>
                            <li class="col6">
                                <%# DataBinder.Eval(Container.DataItem, "LotNo")%></li>
                            <li class="col7">
                                <%# DataBinder.Eval(Container.DataItem, "BatchNo")%></li>
                            <li class="col8">
                                <%# DataBinder.Eval(Container.DataItem, "CountryName")%></li>
                        </ul>
                    </ItemTemplate>
                </telerik:RadComboBox>
            </div>

我必须获取所选项目的LotNo。我已经尝试过GetSelectedItem/getselectedvalue。但没有选择特定列。

获取 Telerik 多列组合框中特定列的值

设置OnDataBound事件

telerik:RadComboBox ID="drpEmployeeItemID" OnDataBound="drpEmployeeItemID_DataBound"

定义处理程序

protected void drpEmployeeItemID_DataBound(object sender, RadComboBoxItemEventArgs e)
{
   e.Item.Text = ((DataRowView)e.Item.DataItem)["ItemName"].ToString() ;
   e.Item.Value = ((DataRowView)e.Item.DataItem)["LotNo"].ToString(); 
   // set attributes
   e.Item.Attributes["ColorName"] = dataItem["ColorName"];    
   e.Item.Attributes["StyleName"] = dataItem["StyleName"];
   ...
}

使用屁股中的文本和值

var itemName = drpEmployeeItemID.Text;
var value = drpEmployeeItemID.SelectedValue;
// get item
var item = drpEmployeeItemID.FindItemByValue(value);
var colorName = item.Attributes["ColorName"];

编辑现在有办法在数据绑定后获取原始DataItem。如果要向项添加更多属性,可以使用Attributes集合来存储它们。

另一种方法是将原始数据源保存在会话中,并按所选值查找数据项。