Telerik rad combobox多列数据绑定

时间:2015-04-08 12:22:22

标签: javascript jquery telerik radcombobox

我是telerik controls的新手。我在radcombobox的页脚模板中有“显示所有帐号..”的锚标记

<telerik:RadComboBox runat="server" ID="rcmdExpAc" TabIndex="22" EmptyMessage="" HighlightTemplatedItems="true"
    AllowCustomText="true" Width="235" OnClientDropDownOpening="OnClientDropDownOpeningExpAc" OnClientDropDownClosing="OnClientDropDownClosingExpAc">
    <ItemTemplate>
      <div class="combo-item-template">
        <table>
          <tr>
            <td style="width: 40px;">
              <span> <%# Eval("colAccCode")%> </span>
            </td>
            <td style="width: 400px;">
              <span> <%# Eval("colAccName")%> </span>
            </td>
            <td style="width: 110px;">
              <span> <%# Eval("colAcTypeName")%></span>
            </td>
          </tr>
        </table>
      </div>
    </ItemTemplate>
 <FooterTemplate>
   <a id="ExpenseAccount" class="blue" style="text-decoration: underline;" href="#signup" name="signup" rel="leanModal">New Account...</a>
   <a id="ElnkShowIncomeAccount" class="blue" style="text-decoration: underline; cursor: pointer;" onclick="EShowAllOrPaymentAccount(this);" >Show All Accounts...</a>
 </FooterTemplate>
</telerik:RadComboBox>`

在显示所有帐户时单击调用ajax调用并使用combobox重新绑定,但组合框仅绑定数据库中的一列...这里是ajax调用的代码.....

function EShowAllOrPaymentAccount(event) {
        var dropDown = $find("rcmdExpAc");
        if (event.innerHTML == "Show All Accounts...") {

            $.ajax({
                url: "../Handlers/Expense.ashx",
                type: 'GET',
                data: {
                    rType: "GetAllPaymentAccRecord",
                    CompanyID: $('#compid').val()
                },
                dataType: 'json',
                success: function (data) {
                    dropDown.clearItems();
                    $.each(data, function (indx, itm) {
                        var comboItem = new Telerik.Web.UI.RadComboBoxItem();

                        comboItem.set_value(itm.colAccId);
                        comboItem.set_text(itm.colAccCode);

                        dropDown.trackChanges();
                        dropDown.get_items().add(comboItem);
                        dropDown.commitChanges();

                    });

                },
                error: function (a, b, c) {
                    alert(a + " " + b + " " + c);
                }
            });
        }
    }

我想绑定Eval("colAccName")%>,Eval("colAccCode")%>,Eval("colAcTypeName")%>早先在radcombo中定义。但我只找到一种方法将一列绑定到colAccID ...请指导我如何绑定数据库中的3列,这些列在此javascript代码的模板中定义。

1 个答案:

答案 0 :(得分:0)

您应该定义 ClientItemTemplate ,如此demo所示。 在客户端创建组合项时使用它。

您还可以使用属性来存储有关该项目的其他信息(文本,值+帐户类型,帐户代码等)。语法也可以在documentation

中看到