我用DataGrid显示数据,但如果不想原原本本显示出来,例如字段传为“1”则显示“男”,字段值为“2”显示“女”,应该怎么实现?
解决方案 »
- [急]如何用JavaScript获取页面控件Panel的句柄?
- 谁帮我看几行代码,利用ajax判断注册用户名的
- 打开一个 数据库连接(不同级目录文件)。??这是什么意思???
- ajax和js脚本的问题,急死我了,请高手指教,
- !!!求专业人士指点内层问题:关于"前台绑定"和"后台绑定"的优劣
- 新手!无法创建Web项目!救命!!!
- .net 能否实现通过编码判断当前操作系统是否已经安装某个应用程序
- 求寻免费空间
- DataGrid的超级链接列如何传递二个以上的参数?
- 水晶报表怎么会出现这种问题啊,求助!!!!
- 有一个用asp.net写的登陆程序,我在win200profession按登陆可以执行,但在win2003下按登陆却没有任何反应?
- [探讨]关天WEB TreeView 控件的某些想法。
比如,
select 字段1,字段2,...,XingBie from 表1,XingBie where 表1.ID = XingBie.ID;即可
dt.Rows(i).BeginEdit() '更改性别显示
Select Case dt.Rows(i).Item("XB")
Case "1"
dt.Rows(i).Item("XB") = "男"
Case "2"
dt.Rows(i).Item("XB") = "女"
End Select dt.Rows(i).EndEdit()
Next Me.DataGrid1.DataSource = dt
Me.DataGrid1.DataBind()
PageSize="9" GridLines="Horizontal" CellPadding="3" BackColor="White" BorderWidth="1px" BorderStyle="None" BorderColor="#E7E7FF" AutoGenerateColumns="False">
<FooterStyle ForeColor="#00CC33" BackColor="#33CC66"></FooterStyle>
<SelectedItemStyle Font-Bold="True" ForeColor="#F7F7F7" BackColor="#738A9C"></SelectedItemStyle>
<AlternatingItemStyle BackColor="#F7F7F7"></AlternatingItemStyle>
<ItemStyle ForeColor="#4A3C8C" BackColor="#E7E7FF"></ItemStyle>
<HeaderStyle Font-Bold="True" ForeColor="#F7F7F7" BackColor="#4A3C8C"></HeaderStyle>
<Columns>
<asp:TemplateColumn HeaderText="信源编号">
<HeaderStyle HorizontalAlign="Center" Width="50px"></HeaderStyle>
<ItemStyle HorizontalAlign="Center" Width="300px"></ItemStyle>
<HeaderTemplate>
<FONT face="宋体"></FONT>
</HeaderTemplate>
<ItemTemplate>
<asp:HyperLink id=AccessoryLink CssClass="contentlink" NavigateUrl='<%# FormatUrl((DataBinder.Eval(Container.DataItem,"ConnectID")).ToString()) %>' Runat="server">
<%# DataBinder.Eval(Container.DataItem,"ConnectID") %>
</asp:HyperLink>
</ItemTemplate>
<EditItemTemplate>
<FONT face="宋体"></FONT>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:ButtonColumn Text="删除" ButtonType="PushButton" DataTextField="ID" CommandName="Delete" DataTextFormatString="删除"></asp:ButtonColumn>
</Columns>
<PagerStyle HorizontalAlign="Right" ForeColor="#4A3C8C" BackColor="#E7E7FF" Mode="NumericPages"></PagerStyle>
</asp:datagrid>
<ItemTemplate>
<asp:HyperLink id=AccessoryLink CssClass="contentlink" NavigateUrl='<%# FormatUrl((DataBinder.Eval(Container.DataItem,"ConnectID")).ToString()) %>' Runat="server">
<%# DataBinder.Eval(Container.DataItem,"ConnectID") %>
</asp:HyperLink>
</ItemTemplate>
SELECT
CASE sex
WHEN '1' THEN '男'
ELSE '女'
END AS sex
from
table
SQL语句为:
SELECT name, REPLACE(sex, '1', '男') AS 性别
FROM man
WHERE sex = '1'
UNION
SELECT name, replace(sex, '2', '女') AS 性别
FROM man
WHERE sex = '2'
<ItemTemplate>
<asp:HyperLink id=AccessoryLink CssClass="contentlink" Runat="server">
<%# Format(DataBinder.Eval(Container.DataItem,"Sex")) %>
</asp:HyperLink>
</ItemTemplate>
代码分离:
public string Format(string Sex)
{
string S = "";
switch(Sex)
{
case "1":
S = "男";
break;
case "2":
S = "女";
break;
}
return S;
}
DataGrid中建一个模板列,然后把你要显示的数据绑定就行了,这是我的代码:<asp:TemplateColumn HeaderText="性别">
<ItemTemplate>
<FONT face="宋体">
<%# Convert.ToInt32(DataBinder.Eval(Container.DataItem,"Sex"))==1?"男":"女" %>
</FONT>
</ItemTemplate>
</asp:TemplateColumn>我的就是这样的,
在itemdatabound事件里过滤一下 或者
把ItemTemplet里的控件设为dropdownlist,不过这个dropdownlist要初始化,整个过程也会比较繁琐,不过使用还是很方便的
NetAdvantage的Grid控件就带有这个功能,你可以参考一下,最好做成一个控件。<%#.... %>的形式尽量少用,反射会有效率影响。