前台绑定数据的几种写法总结
项目中的几种绑定数据的总结记录下来
例一:数据库查询出来的日期格式是:2010-9-6 11:11:11.231 但是前台页面显示是2010年9月6日
<%#Convert.ToDateTime(Eval('Date')).ToString("yyyy年MM月dd日") %>
例二:连接到另外一个页面传多个值
<a href='<%#String.Format("Test.aspx?Id={0}&PId={1}",Eval("Id"),Eval("PId")) %>'>查看</a>
例三:打开新窗体,并传值
在javascript中以下两种情况均可以:
<a href='javascript:window.open("Test.aspx")'>查看</a> //外单引号内双引号
<a href="javascript:window.open('Test.aspx')">查看</a> //外双引号内单引号
以下两种编译不通过
<a href="javascript:window.open("Test.aspx")">查看</a> //内外均是双引号
<a href='javascript:window.open('Test.aspx')'>查看</a> //内外均是单引号
这个时候使用例二会出现错误
<a href='<%#String.Format("javascript:window.open('Test.aspx?Id={0}&PId={1}')",Eval("Id"),Eval("PId")) %>'>查看</a>
运行后查看源码 <a href='javascript:window.open('Test.aspx?Id=1&PId=0')'
这是内外均是单引号 所以运行报Js错误
解决办法:
在后台定义方法BindJs
/// <param name="o1">参数一</param>
/// <param name="o2">参数二</param>
/// <returns>Js脚本字符串</returns>
protected String BindJs(object o1, object o2)
{
//包含双引号的Url
string Url = "\"Test.aspx?Id={0}&PId={1}\"";
return "javascript:window.open("+Url+","+o1.ToString()+","+o2.ToString()+")";
}
前台代码: <a href='<%#BindJs(Eval("Id"),Eval("PId")) %>'>查看</a> 外单引号内双引号
项目中遇到,记录下了。