日期:2014-05-17  浏览次数:20430 次

DataList 数据绑定控件取值



这个问题怎么解决一下呢

------解决方案--------------------
Eval("dm") 修改成 <%# Eval("dm")%>
------解决方案--------------------
不要这么写代码,把所有的代码都这样凌乱的放到前台。以后改个东西,维护个啥的,会把人搞疯掉的。
你完全可以把Eval这种绑定的东西放到前台页面,把for循环这种东西在页面的后台代码中写,在可以直接取datatable绑定前的内容。最后在刷出来。
------解决方案--------------------
悲剧。。。。。。


------解决方案--------------------
不要在asp.net中写ASP的语法
------解决方案--------------------
这根本行不通。
------解决方案--------------------
引用:
不要在asp.net中写ASP的语法



不要在服务器控件中写<%  %>代码,它是行不通的,<%#  %>这个虽然只是多了一个#,但是根本不是那么一回事
------解决方案--------------------
你引号加多了 把string sql="" 改成string sql=''  后面的单引号和双引号替换  <%# Eval("")  %>里面的东西肯定是双引号的  或者写成这样的 <%=  %>后台再给变量赋值
------解决方案--------------------
本身服务器控件就是服务器端生成的,你再用<%%> 等于response.write(response.write(""));这明显是错误的
------解决方案--------------------
改成这样:

<%#
((Func<string>)(() =>
{
string output = "";
for (int i = 0; i < conyue; i++)
{
string sql1 = "select blah,blah where HY_DM='" + Eval("dm") + "' and blah,blah";
System.Data.DataTable dt = SelectFormForum(sql1);
output+= @"<td align=center>" + dt.Rows[0]["c"].ToString() + "</td>" +
@"<td align=center>" + dt.Rows[0]["s"].ToString() + "</td>";
}
return output;
}))()
%>