首页 新闻 会员 周边

求助,关于参数传递的问题,在线等。

0
悬赏园豆:10 [已解决问题] 解决于 2009-05-20 16:08

前台是一个DataList  代码如下:
<asp:DataList ID="DataList1" runat="server" CellPadding="4" ForeColor="#333333">
<HeaderTemplate >
<asp:Label ID="lbl" runat ="server"  Text ='<%# Eval("TypeName") %>'>
</asp:Label><a href ="../Add.aspx" >添加</a>
</HeaderTemplate>
<ItemTemplate >
<a href ="../Show.aspx?PostId=<%#Eval("PostId") %> &TypeId=<%#Eval("TypeId") %>"><%#Eval("Title")%></a>
<asp:Label ID=lblName runat ="server" Text ='<%# Eval("UserName") %>'></asp:Label>
<asp:Label ID=Label1 runat ="server" Text ='<%# Eval("P_Date") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<a href ='../PostList.aspx?id=<%#Eval("TypeId") %>'>更多</a></FooterTemplate>

</asp:DataList>

后台代码很简单的:
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            bind();
        }
    }
    public void bind()
    {
        string sql = "select top 10 PostId,Title,P_Date,UserName,TypeName,Post.TypeId from Post,Type where Post.TypeId=Type.TypeId  and Post.TypeId=1 order by  Post.L_Date desc";
        this.DataList1 .DataSource =DB.DataListBind(sql);
        this.DataList1.DataBind();
    }

页头里绑定的TypeName和页脚里传递的TypeId都不显示  而在<ItemTemplate>中传递的TypeId却能显示出来,请大家指点下。

迷路的妖精的主页 迷路的妖精 | 初学一级 | 园豆:146
提问于:2009-05-20 15:09
< >
分享
最佳答案
0

哈哈,这个大概是你误解了控件 asp:DataList (或者是我误解了)。 DataList 原则上是包装了一个输出 Table 或 Flow 的类表结构的 HTML 块,印象中有个 Mode 可以设置为 Table/Flow。在进行配置的时候,这个 HTML 块的前端(Header)以及末端(Footor)允许用户自定义输出“静态HTML代码”。所以你这的绑定语句 Eval、Bind 等大概都是无效的。

我看你现在的代码形式,估计你是想要这样的效果:

<asp:DataList ID="DataList1" runat="server" CellPadding="4" ForeColor="#333333">
<HeaderTemplate >
</HeaderTemplate>
<ItemTemplate >
<asp:Label ID="lbl" runat ="server"  Text ='<%# Eval("TypeName") %>'>
</asp:Label><a href ="../Add.aspx" >添加</a>


<a href ="../Show.aspx?PostId=<%#Eval("PostId") %> &TypeId=<%#Eval("TypeId") %>"><%#Eval("Title")%></a>
<asp:Label ID=lblName runat ="server" Text ='<%# Eval("UserName") %>'></asp:Label>
<asp:Label ID=Label1 runat ="server" Text ='<%# Eval("P_Date") %>'></asp:Label>

 

<a href ='../PostList.aspx?id=<%#Eval("TypeId") %>'>更多</a>
</ItemTemplate>
<FooterTemplate></FooterTemplate>

</asp:DataList>

 

最后,我也是臆测,DataList 用的不多,另外还没做实验,哈哈,楼主还是以实验、相关官方文档为主!

陛下 | 老鸟四级 |园豆:3938 | 2009-05-20 15:37
其他回答(1)
0

你这样,会用断点么,在string sql = "select top 10 PostId,Title,P_Date,UserName,TypeName,Post.TypeId from Post,Type where Post.TypeId=Type.TypeId  and Post.TypeId=1 order by  Post.L_Date desc";这句前面设置断点,看看取到的是什么???然后再说!很可能是你代码写的有问题,因为不知道你的2个表是什么结构!只能这样帮你了!呵呵!

子夜星辰 | 园豆:1613 (小虾三级) | 2009-05-20 15:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册