当我必须在ASP.net页面中显示查找表数据(使用MS Access后端)时,我面临一个无聊的问题
asp.net页面将显示其数据的主表 Employees 包括一个字段 main.gender ,其类型为“Integer”,链接到查找表性别
如果表格链接到gridview,则相关字段将显示
“1”或“2”
我需要显示
“男性”和“女性”
我找到了解决这个问题的两种方法,但我认为其中任何一个都不是最好的选择
第一种方式:
- 将gridview字段性别转换为模板字段,将链接到查找表的下拉列表替换为编辑模板中的标签,并将性别显示为文本 - 将DDL enabled = false设为“只读” -problem是DDL显示暗淡的文本
第二种方式:使用gender.gender(text)替换Employee.gender(整数)的select查询 这种方式在数据检索方面是多么轻松
任何人都可以帮我找到一种以更“专业”的方式显示文字的方法
答案 0 :(得分:2)
您可以使用数据创建枚举:
protected enum MyEnum
{
male = 1,
female = 2
}
然后使用这样的东西:
<asp:GridView runat="server" ID="gridView1" AutoGenerateColumns="false" >
<Columns>
<asp:BoundField DataField="PropertyName" />
//Add one column for your each property you want to display
<asp:TemplateField HeaderText="Gender">
<ItemTemplate>
<%# (MyEnum)Eval("Gender") %>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
希望它会有所帮助。
答案 1 :(得分:1)
Mokokamello
尝试在asp.net datasource select命令中使用join,下面是伪代码的样子
<asp:AccessDataSource ID="AccessDataSource1" runat="server"
DataFile="~/App_Data/database.mdb"
SelectCommand="SELECT Table1.ID, Table1.NameEmployee, Gender.Gender FROM Table1 INNER JOIN Gender ON Table1.gender = Gender.ID">
</asp:AccessDataSource>
它不需要代码,没有下拉列表,没有数据库嵌入式查询,而且你提到的方式明显更快