Asp.net ComboBox未显示";DisplayText";相反,它显示的是;“价值”;在Ext.net中
我使用Ajax请求用一个服务填充一个组合框存储值,以使用以下代码自动显示匹配的文本(过滤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"
<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>