这样的情况,我通常使用模板列解决。模板列具有很高的灵活性,能插入一些特殊的控件。另外,也可以使用数据绑定到一个函数(这个函数至少应该是Protected),向函数传递当前列用到的数据,然后在函数中进行处理后返回需要的结果。比如:
<asp:label id=Label1 Text='<%#Sex(DataBinder.Eval(Container.DataItem,"Sex"))%>'/>然后,在CS中:
protected string Sex(object oSex)
{
return Convert.ToBoolean(oSex)?"男":"女";
}当然,这个例子可以把判断字段值后的显示内容可以放在ASPX的绑定代码中处理,这里只是举个例子。
<asp:label id=Label1 Text='<%#Sex(DataBinder.Eval(Container.DataItem,"Sex"))%>'/>然后,在CS中:
protected string Sex(object oSex)
{
return Convert.ToBoolean(oSex)?"男":"女";
}当然,这个例子可以把判断字段值后的显示内容可以放在ASPX的绑定代码中处理,这里只是举个例子。
解决方案 »
- 如何删除已上传的附件?
- asp.net缓存可以多用户共享吗
- 求一条sql语句
- Validform表单验证插件点击提交没反应
- 如何在服务器返回的信息
- DataGrid数据列显示/隐藏问题!!!
- 菜鸟,请教,分页问题....
- 讨论,Server.Transfer与Response.Redirect的不同。
- 如何控制自定义控件在表格中显示??(附部分代码)
- .net core 中controller 里能正常使用session,但是拦截器中获取不到,谁知道怎么回事?
- 我对petshop3中做了用visio进行反向工程,提示成功,而且文件也已经建立(280多k)。但文件里面是空的?
- 初学.net,想结实几个朋友,请教一些问题。
<%if rs("isShowImg")=true then %> <img src="<% rs("imgName") %>"> <%end if%>
<%next%>
也就就是用字段rs("isShowImg")的值来判断控制是否显示图片.如果用.net中的datalist中帮定的数据, 如何来控制?
<%# GetStatusImage(Container.DataItem,"StatusCode") %>
</ItemTemplate>
</asp:TemplateColumn>在cs:
protected string GetStatusImage(object item,string name)
{
string status=((DataRowView)item)[name].ToString();
switch(status)
{ case "4": return "<img src='../../Images/ico_18_sales.gif' alt='"+DBMrm.GetString("Quote")+"' />"; //quoted
case "5": return "<img src='../../Images/ico_18_order.gif' alt='"+DBMrm.GetString("Order")+"' />"; //quoted
}
return "<img src='../../Images/ico_empty.gif' />";
}
但是, 这样的情况其实也是存在的:
fill到datatable的数据记录中, 都是要显示的了,只是某些行要显示图片, 某些行不显示图片字段,所有行剩下的字段还是要显示的. 这样的情况, 也就是datatable的数据已经不能在后台再过滤了, 就要用这样的判断了, 你说是吗?
<ItemTemplate>
<asp:Image id=Image1 RunAt=Server Visible='<%#DataBinder.Eval(Container.DataItem,"isShowImg")%>' ImageUrl='<%#DataBinder.Eval(Container.DataItem,"imgName")%>'/>
</ItemTemplate>
</asp:TemplateColumn>用这种方法不需要额外的CS代码编写。