刘不言生化2017百度云:.net的简单问题

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 04:39:44
如何在页面上将绑定的值<%# DataBinder.Eval(Container.DataItem, "price") %>转化为其他的值,
也就是说,我这个值呢是数值型的,要判断只要他等于1的时候就显示,“价格待定”几个字
不知道我说的清楚吗,我送80分

方法一:
<%#
Convert.ToInt32(DataBinder.Eval(Container.DataItem, "price"))==1?"价格待定":DataBinder.Eval(Container.DataItem, "price")
%>

方法二:
<%#
this.Format( DataBinder.Eval(Container.DataItem, "price") )
%>
后台编码写一个函数:
protected Object Format( Object price ) {
if( (int)price == 1 )
return "价格待定";
return price;
}

DATABINDER.EVAL(CONTAINER.DATAITEM,"转换的类型","格式")

最后一个"格式"是可选的,一般不用去管他,CONTAINER.DATAITEM是捆绑的数据项,"转换类型"指的是INTEGER,STRING,BOOLEAN这一类东西.
<SCRIPT LANGUAGE="C#" RUNAT="SERVER">
PUBLIC VOID PAGE_LOAD(OBJECT SRC,EVENTARGS E)
{
INT I;
//建立表数据
DATATABLE DT=NEW DATATABLE();
DATAROW DR;
//建立COLUMN例,可以指明例的类型,这里用的是默认的STRING
DT.COLUMNS.ADD(NEW DATACOLUMN("编号"));
DT.COLUMNS.ADD(NEW DATACOLUMN("用户名"));
FOR(I=1;I<8;I++)
{
DR=DT.NEWROW();
DR[0]=INT32.TOSTRING(I);
DR[1]="ASPCN"+INT32.TOSTRING(I);
DT.ROWS.ADD(DR);
}
//捆绑
DG1.DATASOURCE = NEW DATAVIEW(DT);
DG1.DATABIND();

}
</SCRIPT>
应该能看明白了吧?????????

还可以用STRING.FORMAT方法

你的问题当然能解决,但有一个简单的解决办法就是利用SQL语句来实现就可以了,你参考一下吧.
select case price when 1 then '价格待定' else price end as price from table

然后你再绑定DataItem就可以了

建议到www.csdn.net社区/.net版/asp.net提问。

自己写一个类转换,比如写一个 string Change(string s)类,<%# Change(DataBinder.Eval(Container.DataItem, \"price\")) %>转换即可