Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net ComboBox未显示";DisplayText";相反,它显示的是;“价值”;在Ext.net中_Asp.net_Ext.net - Fatal编程技术网

Asp.net ComboBox未显示";DisplayText";相反,它显示的是;“价值”;在Ext.net中

Asp.net ComboBox未显示";DisplayText";相反,它显示的是;“价值”;在Ext.net中,asp.net,ext.net,Asp.net,Ext.net,我使用Ajax请求用一个服务填充一个组合框存储值,以使用以下代码自动显示匹配的文本(过滤 <ext:ComboBox ID="cbManager" runat="server" DisplayField="FirstName" LabelAlign="Right" ValueField="EmployeeID" AllowBlank="false"

我使用Ajax请求用一个服务填充一个组合框存储值,以使用以下代码自动显示匹配的文本(过滤

  <ext:ComboBox ID="cbManager" runat="server" DisplayField="FirstName" 
                        LabelAlign="Right"  ValueField="EmployeeID"  AllowBlank="false" 
                                                HideTrigger="true"   MinChars="1" FieldLabel="* Manager" >
                <ext:Store ID="storeManager" runat="server" AutoLoad="false">
                  <Proxy>
                   <ext:AjaxProxy Url="~/Modules/eHRMS/FilterEmployeeNames.ashx?empType=1">
                    <ActionMethods Read="GET" />
                       <Reader>
                     <ext:JsonReader Root="employees" TotalProperty="total" />
                       </Reader>
                    </ext:AjaxProxy>
                   </Proxy>
                  <Model>
                  <ext:Model ID="Model4" runat="server">
                   <Fields>
                    <ext:ModelField Name="EmployeeID" />
                    <ext:ModelField Name="FirstName" />
                   </Fields>
                  </ext:Model>
                  </Model>
                </ext:Store>
              </Store>
      </ext:ComboBox>
但它只显示int值而不是字符串(即EmployeeName)

这种行为的原因可能是什么,请告诉我 走对了

多谢各位


应添加与此值对应的记录,然后设置该值:

<%@ Page Language="C#" %>

<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>

<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!X.IsAjaxRequest)
        {
            Store store = this.ComboBox1.GetStore();
            store.Data = new object[] 
            { 
                new 
                { 
                    value = "2", 
                    text = "Item 2" 
                } 
            };
        }
    }

    protected void Store_OnReadData(object sender, StoreReadDataEventArgs e)
    {
        Store store = sender as Store;
        store.DataSource = new object[] 
        { 
            new { value = "1", text = "Item 1" },
            new { value = "2", text = "Item 2" },
            new { value = "3", text = "Item 3" }
        };
        store.DataBind();
    }

    protected void ButtonClick(object sender, DirectEventArgs e)
    {
        ComboBox1.GetStore().Add(new object[] 
        { 
            new 
            { 
                value = "4", 
                text = "Item 4" 
            } 
        });
        ComboBox1.SetValue("4");
    }
</script>

<!DOCTYPE html>

<html>
<head runat="server">
    <title>Ext.NET v2 Example</title>
</head>
<body>
    <form runat="server">
        <ext:ResourceManager runat="server" />
        <ext:ComboBox
            ID="ComboBox1"
            runat="server"
            DisplayField="text"
            ValueField="value">
            <Store>
                <ext:Store runat="server" OnReadData="Store_OnReadData">
                    <Model>
                        <ext:Model runat="server">
                            <Fields>
                                <ext:ModelField Name="value" />
                                <ext:ModelField Name="text" />
                            </Fields>
                        </ext:Model>
                    </Model>
                    <Proxy>
                        <ext:PageProxy>
                            <Reader>
                                <ext:JsonReader />
                            </Reader>
                        </ext:PageProxy>
                    </Proxy>
                </ext:Store>
            </Store>
            <SelectedItems>
                <ext:ListItem Index="0" />
            </SelectedItems>
        </ext:ComboBox>

        <ext:Button runat="server" Text="Set some value">
            <DirectEvents>
                <Click OnEvent="ButtonClick"></Click>
            </DirectEvents>
        </ext:Button>
    </form>
</body>
</html>

受保护的无效页面加载(对象发送方、事件参数e)
{
如果(!X.IsAjaxRequest)
{
Store Store=this.ComboBox1.GetStore();
store.Data=新对象[]
{ 
新的
{ 
value=“2”,
text=“项目2”
} 
};
}
}
受保护的无效存储\u OnReadData(对象发送方,StoreReadDataEventArgs e)
{
Store Store=发送方作为存储;
store.DataSource=新对象[]
{ 
新的{value=“1”,text=“Item 1”},
新的{value=“2”,text=“Item 2”},
新的{value=“3”,text=“Item 3”}
};
store.DataBind();
}
受保护的无效按钮单击(对象发送器,DirectEventArgs e)
{
ComboBox1.GetStore().Add(新对象[])
{ 
新的
{ 
value=“4”,
text=“项目4”
} 
});
ComboBox1.设置值(“4”);
}
Ext.NET v2示例

正如我在问题中提到的,我在这里使用处理程序服务,因此我通过该服务进行绑定,我是否必须像您所说的那样通过添加项目列表直接绑定数据?这里我们有500多条记录要显示,如果我使用用户页面代理,它将显示所有记录,并且不可能使用这些记录进行过滤,因此我使用服务功能。逻辑应该是相同的。这实际上并不取决于如何加载数据。如果你仍然有这个问题,你能提供样品吗?
<%@ Page Language="C#" %>

<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>

<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!X.IsAjaxRequest)
        {
            Store store = this.ComboBox1.GetStore();
            store.Data = new object[] 
            { 
                new 
                { 
                    value = "2", 
                    text = "Item 2" 
                } 
            };
        }
    }

    protected void Store_OnReadData(object sender, StoreReadDataEventArgs e)
    {
        Store store = sender as Store;
        store.DataSource = new object[] 
        { 
            new { value = "1", text = "Item 1" },
            new { value = "2", text = "Item 2" },
            new { value = "3", text = "Item 3" }
        };
        store.DataBind();
    }

    protected void ButtonClick(object sender, DirectEventArgs e)
    {
        ComboBox1.GetStore().Add(new object[] 
        { 
            new 
            { 
                value = "4", 
                text = "Item 4" 
            } 
        });
        ComboBox1.SetValue("4");
    }
</script>

<!DOCTYPE html>

<html>
<head runat="server">
    <title>Ext.NET v2 Example</title>
</head>
<body>
    <form runat="server">
        <ext:ResourceManager runat="server" />
        <ext:ComboBox
            ID="ComboBox1"
            runat="server"
            DisplayField="text"
            ValueField="value">
            <Store>
                <ext:Store runat="server" OnReadData="Store_OnReadData">
                    <Model>
                        <ext:Model runat="server">
                            <Fields>
                                <ext:ModelField Name="value" />
                                <ext:ModelField Name="text" />
                            </Fields>
                        </ext:Model>
                    </Model>
                    <Proxy>
                        <ext:PageProxy>
                            <Reader>
                                <ext:JsonReader />
                            </Reader>
                        </ext:PageProxy>
                    </Proxy>
                </ext:Store>
            </Store>
            <SelectedItems>
                <ext:ListItem Index="0" />
            </SelectedItems>
        </ext:ComboBox>

        <ext:Button runat="server" Text="Set some value">
            <DirectEvents>
                <Click OnEvent="ButtonClick"></Click>
            </DirectEvents>
        </ext:Button>
    </form>
</body>
</html>