这个问题我确实是没办法了,关于DataBinder.Eval方法,求救

Drip_LuoYang 2005-09-26 11:42:43
我想通过以下代码实现repeater的动态绑订字段.需要绑订的字段来自于一个公共的函数getArrayList
此函数位于xx.cs文件里面.其它没问题但是lesson2这个变量不被Eval承认,错误提示为:
CS0117: “object”并不包含对“lesson2”的定义

<asp:Repeater id="Repeater1" runat="server">
<ItemTemplate>
<tr>
<%
string lesson2="";
ArrayList list1=getArrayList();
int lessonnum=list1.Count;

for(int i=0;i<lessonnum;i++)
{
lesson2=list1[i].ToString();
%>
<td><%#DataBinder.Eval(Container.DataItem.lesson2)%></td>
<% }%>
</tr>
</ItemTemplate>
</asp:Repeater>
...全文
238 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
downmoon 2005-09-27
  • 打赏
  • 举报
回复
http://blog.csdn.net/downmoon/archive/2005/08/09/449038.aspx
Drip_LuoYang 2005-09-27
  • 打赏
  • 举报
回复
在语句<td><%#DataBinder.Eval(Container.DataItem,getLesson(i))%></td> 如果getLesson是一个函数如何使函数带参数i正常工作.
LoveCherry 2005-09-26
  • 打赏
  • 举报
回复
后台public string aa="Cate_Name";
前台<%# DataBinder.Eval(Container.DataItem,aa) %>没有问题啊

><%#DataBinder.Eval(Container.DataItem.lesson2)%></
你这里至少应该是,吧
Drip_LuoYang 2005-09-26
  • 打赏
  • 举报
回复
对不起有一个地方打错了.<%#DataBinder.Eval(Container.DataItem.lesson2)%>
改为<%#DataBinder.Eval(Container.DataItem,lesson2)%>.提示错误改为:
CS0103: 名称“lesson2”在类或命名空间“ASP.banzhurendatalistdetail_aspx”中不存在.

具体含义是这样的.getArrayList函数得到repeater要绑订的字段列表.例如repeater需要绑订的学生的成绩 语文 数学 体育等.for循环嵌套在<tr></tr>标签里面是为了在绑订时生成list.count个td列.
现在关键问题是lesson2这个变量程序不认.当然如果把lesson2变量改成固定的字段例如 "语文"那么这个程序就没问题了,但是这样失去了动态绑订的意义.
Mirricle 2005-09-26
  • 打赏
  • 举报
回复
你里面FOR的意义是什么?
REPEATER就是一个FOR了
mgslovedreamsgogo 2005-09-26
  • 打赏
  • 举报
回复
能说明白点吗?
xwqjamky 2005-09-26
  • 打赏
  • 举报
回复
<td><%# DataBinder.Eval(Container.DataItem.lesson2) %></td>
powerllr 2005-09-26
  • 打赏
  • 举报
回复
<td><%= DataBinder.Eval(Container.DataItem.lesson2) %></td>
xiaowangtian1117 2005-09-26
  • 打赏
  • 举报
回复
<td bgColor="#f5f5f5">
<%# ConvertDis(Convert.ToBoolean(DataBinder.Eval(Container, "DataItem.R_search")),"| 浏览") %>
<%# ConvertDis(Convert.ToBoolean(DataBinder.Eval(Container, "DataItem.R_upload")),"| 上载") %>
<%# ConvertDis(Convert.ToBoolean(DataBinder.Eval(Container, "DataItem.R_audit")),"| 审核") %>
<%# ConvertDis(Convert.ToBoolean(DataBinder.Eval(Container, "DataItem.R_approve")),"| 审批") %>
<%# ConvertDis(Convert.ToBoolean(DataBinder.Eval(Container, "DataItem.R_store")),"| 归档") %>
<%# ConvertDis(Convert.ToBoolean(DataBinder.Eval(Container, "DataItem.R_print")),"| 打印") %>
<%# ConvertDis(Convert.ToBoolean(DataBinder.Eval(Container, "DataItem.R_download")),"| 下载") %>
<%# ConvertDis(Convert.ToBoolean(DataBinder.Eval(Container, "DataItem.R_manager")),"| 管理") %>
<%# ConvertDis(Convert.ToBoolean(DataBinder.Eval(Container, "DataItem.R_downsetup")),"|下线 |") %>
</td>

public string ConvertDis(bool boolRole,string strcode)
{
if (boolRole)
{
return strcode;
}
else
{
return "";
}
}
jiadalsm 2005-09-26
  • 打赏
  • 举报
回复
...还是没弄懂哦。这样的话为什么不干脆用datagrid哦,
Drip_LuoYang 2005-09-26
  • 打赏
  • 举报
回复
不是放值而是绑订某个数据列,这个lesson2可能就是数据库里面的某个字段例如语文 或数学.产生多少个td要根据从数据库里面读出的字段多少而定如果读出5个字段则是有5个td.关键是绑订语句他不认动态变量lesson2.
jiadalsm 2005-09-26
  • 打赏
  • 举报
回复
for(int i=0;i<lessonnum;i++)
{
lesson2=list1[i].ToString();
%>
<td><%#DataBinder.Eval(Container.DataItem.lesson2)%></td>
<% }%>
楼主的意思是产生i个<td>,然后在每个<td>里面放值吧?
换一种思路怎么样.在后台弄个string函数,
public string Formatstr(string str1)
{
string str2="<td><%#"+str1+"%></td>";
}
不知道可行不
Drip_LuoYang 2005-09-26
  • 打赏
  • 举报
回复
<%
string lesson2="";
ArrayList list1=getArrayList();
int lessonnum=list1.Count;

for(int i=0;i<lessonnum;i++)
{
lesson2=list1[i].ToString();
%>

这些操作都放到后台去..不然不好维护哦,还有.方法和变量要用public,前台才能调用的
---------------------
这些代码当然可以放到后台,但是主要是这句代码
<td><%= DataBinder.Eval(Container.DataItem,lesson2) %></td>
其中有一些html标签呀!
jiadalsm 2005-09-26
  • 打赏
  • 举报
回复
<%
string lesson2="";
ArrayList list1=getArrayList();
int lessonnum=list1.Count;

for(int i=0;i<lessonnum;i++)
{
lesson2=list1[i].ToString();
%>
这些操作都放到后台去..不然不好维护哦,还有.方法和变量要用public,前台才能调用的
jiadalsm 2005-09-26
  • 打赏
  • 举报
回复
后台的应该是public....不然引用不了的
Drip_LuoYang 2005-09-26
  • 打赏
  • 举报
回复
Drip_LuoYang 2005-09-26
  • 打赏
  • 举报
回复
后台可以但是放到aspx里面怎么就不行呢?

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧