ASP.net前台绑定用的最多,今天小小总结一下。
1:<%#Eval("")%>
2:<%#Bind("")%>
3:<%=变量%>
1:<%#Eval("数据列")%> 主要用于需要进行更改的数据列
如:我需要将<%#Eval("性别")%> =1 ;将1转换成女。
首先在.CS文件中定义一个方法:
/// <summary>
/// 转换性别
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public object ChangeSex(object obj)
{
if (obj.ToString() == "0")
{
return "男";
}
else
{
return "女";
}
}
<%#ChangeSex(Eval("性别"))%>=女
可以把这些公共的转换方法全部放到一个公共类文件中,进行调用之。调用方法为:
<%#命名空间.公共类名.方法名("列")%>
<%# Common.ChangeSex(Eval("性别"))%>
也可以进行时间截取
如1: <%# Eval("StartTime", "{0:yyyy-MM-dd}")%>
或者2: <%# Convert.ToDateTime(Eval("StartTime").ToString()).ToString("yyyy-MM-dd")%>
2:<%#Bind("数据列")%>
常见于GridView中的不需要进行处理的数据列绑定。
3:<%=变量%>
需要在后台.cs文件中声明一个public的变量
public string userInfo= "数据";
直接调用就OK了
但是我们一般不会这样直接写一个定值;
就需要这样写了:
public string StrOrders
{
set
{
ViewState["Orders"] = value;
}
get
{
if (ViewState["Orders"] == null)
{
ViewState["Orders"] = "";
}
return ViewState["Orders"].ToString();
}
}
------------------------------------------------------------------------------------------------------------------
1)Eval绑定
可以绑定一个单独的字段 Eval("houseID")
也可以绑定一个函数 <%# houseEdit(Eval("infoType"), Eval("houseID"))%>
2)Bind绑定
两者的区别:Eval 方法是静态单向(只读)方法,所以Eval 函数用于单向(只读)绑定,该方法采用数据字段的值作为参数并将其作为字符串返回。Bind 方法支持读/写功能,所以Bind 函数用于双向(可更新)绑定。该方法可以检索数据绑定控件的值并将任何更改提交回数据库。
3)InnerHtml :可以给前台的相关标签如<ul><li><div>等定义id属性和runat属性,然后在后台的代码中绑定id的innerHtml即可。这种方法很便捷,而且能够很好的实现前后台交互,但是注意InnerHtml内容中的一些html标签和属性值中的转义字符。细心是很重要的哦,我就曾经忘记给<a>写结束标签,导致在ie 8里面显示错位。但在其他浏览器中一切正常,一时之间无法排错,还以为是前台设计兼容性的问题那,怎么折腾了半天。
4)在html代码中写入 <%=dll_info.bll.getNewsList.getList() %>
然后在后台书写带返回值的静态方法getList,然后把相关的html代码在后台做绑定,返回到前台来。其实和上面的方法有相似之处,不过这种方法可以很好的实现代码复用。但是不可以有效的和页面上的一些服务器控件交互。
5)还有一种更普遍的就是写JavaScript代码做处理,这里就不举例了。
-----------------------------------------------------------------------------------------------------------------------------------------
<input type="hidden" name="hidFlag">
<% if( Request["hidFlag"].ToString() == "1"){%>
<input type="button">
<% }else if(Request["hidFlag"].ToString() =="2"){%>....
<%# DataBinder.Eval(Container.DataItem,"Time").ToString()=="" ? "暂无信息":DataBinder.Eval(Container.DataItem, "Time") %>
该时间字段,不为空,就绑定时间,为空,就显示暂无信息。