Ext.Net学习笔记10:Ext.Net ComboBox用法


ComboBox是最常用的控件之一,它与HTML中的Select控件很像,但可以进行多选、自定义显示格式、分页等。

ComboBox用法

<ext:ComboBox runat="server" ID="cmbUserList" DisplayField="Name" ValueField="ID">
    <Store>
        <ext:Store runat="server" ID="storeUserInfo">
            <Model>
                <ext:Model ID="Model1" runat="server" IDProperty="ID">
                    <Fields>
                        <ext:ModelField Name="ID" Type="Int">ext:ModelField>
                        <ext:ModelField Name="Name" Type="String">ext:ModelField>
                        <ext:ModelField Name="Gender" Type="String">ext:ModelField>
                        <ext:ModelField Name="Age" Type="Int">ext:ModelField>
                    Fields>
                ext:Model>
            Model>
        ext:Store>
    Store>
ext:ComboBox>

对于一个ComboBox来说,一定要制定DisplayField和ValueField,然后它包含了一个Store,这个Store我们并不陌生,之前的几篇中都用过。

然后我们在页面加载的时候为Store绑定上数据:

public void BindStore()
{
    storeUserInfo.DataSource = UserInfo.GetData();
    storeUserInfo.DataBind();
}

这样一个简单的ComboBox示例就完成了。

ComboBox分页

当数据量大的时候,我们当然希望能够进行分页显示,这个功能ComboBox是支持的。

首先我们需要对Store进行分页处理,前面的Ext.Net学习笔记08:使用数据和Ext.Net学习笔记09:Ext.Net中Store的用法中已经介绍过,此处不再赘言。

然后我们要在ComboBox的定义中加上分页的PageSize属性:

<ext:ComboBox runat="server" ID="cmbUserList" DisplayField="Name" ValueField="ID" PageSize="5">

再次刷新我们的页面,你会发现ComboBox已经支持分页了。

ComboBox自定义显示

ComboBox支持通过XTemplate来自定义每一项的显示。

<ext:ComboBox runat="server" ID="cmbUserList" DisplayField="Name" ValueField="ID" MatchFieldWidth="false" PageSize="5">
    <Store>
        ...
    Store>
    <ListConfig>
        <ItemTpl runat="server">
            <Html>
                <div>
                    <b>{Name}b><br />
                    <span>年龄:{Age}span><br />
                    <span>性别:{Gender}span>
                div>
            Html>
        ItemTpl>
    ListConfig>
ext:ComboBox>

效果如下:

image

以上就是ComboBox常用的方法。