<%# DataBinder.Eval(Container.DataItem,"job_id")%>
这个是repeater、datalist、datagrid里常用的表达式,使用反射来获得数据源并返回相应项现在我的疑问是,这个Container 是什么?这个为什么可以每绑定一行就获得一个值?我以前写过一个简单的支持模板的数据控件,Container是一个乘放模板的容器控件,然后DataItem是它公开的一个属性,用来返回对数据源当前行的引用,可是当我们这样使用
<%string s= DataBinder.Eval(Container.DataItem,"job_id");%>
就错了,“找不到类型或命名空间名称“Container”(是否缺少 using 指令或程序集引用?)”这样就正确
<%#((DataRowView)Container.DataItem)[1].ToString()%>
这是为什么?<%#%>在这里起什么作用?如果在.cs代码里,可以在ItemDataBound事件里这样获得
string s=((DataRowView)e.Item.DataItem)[0].ToString();但如果是在.aspx里,是不是我们没有办法得到乘放模板的容器的引用?
这个是repeater、datalist、datagrid里常用的表达式,使用反射来获得数据源并返回相应项现在我的疑问是,这个Container 是什么?这个为什么可以每绑定一行就获得一个值?我以前写过一个简单的支持模板的数据控件,Container是一个乘放模板的容器控件,然后DataItem是它公开的一个属性,用来返回对数据源当前行的引用,可是当我们这样使用
<%string s= DataBinder.Eval(Container.DataItem,"job_id");%>
就错了,“找不到类型或命名空间名称“Container”(是否缺少 using 指令或程序集引用?)”这样就正确
<%#((DataRowView)Container.DataItem)[1].ToString()%>
这是为什么?<%#%>在这里起什么作用?如果在.cs代码里,可以在ItemDataBound事件里这样获得
string s=((DataRowView)e.Item.DataItem)[0].ToString();但如果是在.aspx里,是不是我们没有办法得到乘放模板的容器的引用?
解决方案 »
- 关于页面上的文件超链接
- jquery菜单
- 求用Jquery ajax操作asp.net webservice的各种方法的例子=====================
- .net中使用fck编辑器
- .NET设计模式与开发架构
- 在asp.net里想用可编辑下拉框
- 菜鸟问题:DataList(c#)绑定多表数据
- 请问:为什么我建的web应用程序中〈script〉〈/script〉之间的程序老是不运行啊?
- 问个关于AJAX的问题、、、???
- 关于UpdateCommand中数据的类型问题?
- 关于cookies的疑问
- 关于web.config中<sessionstate cookieless="true" />的疑问
得到该行的数据?
Dataset.Tables["tablename"].Rows[ItemIndex]["field"].ToString();
我的意思是这样
<asp:DataList id="DataList1" runat="server">
<ItemTemplate>
<%# # DataBinder.Eval(Container.DataItem,"uid")%>
<%#
((DataRowView)Container.DataItem)[1].ToString()
%>
<%
//do something ....
%>
</ItemTemplate>
</asp:DataList>
就是在这里面通过<%%>里的语句获得绑定行的某些值
{
//...
}<%# GetData((DataRowView)Container.DataItem)%>
或者<asp:Panel runat="server" Visible='<%# ((DataRowView)Container.DataItem)[1].ToString() == "1" %>'>
abc</asp:Panel><asp:Panel runat="server" Visible='<%# ((DataRowView)Container.DataItem)[2].ToString() == "2" %>' />
def</asp:Panel>