C#页面前台绑定数据 <%%><%#%><%=%>

时间:2023-03-09 00:24:59
C#页面前台绑定数据 <%%><%#%><%=%>

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") %>
该时间字段,不为空,就绑定时间,为空,就显示暂无信息。