读书人

DataList循环显示的有关问题

发布时间: 2011-12-24 23:03:24 作者: rapoo

DataList循环显示的问题
两个表tb_newsKind,tb_article,表1存的是栏目类别kindID,kindName依次存储的是栏目的编号和名称,如34是新闻播报,其子栏目为35时事新闻和36整点新闻两者的parentID都为34)。
页面接收传入的一级栏目的kindID来调用它的二级栏目DataList1一行两列的循环显示kindName(kindID)已经实现,而每个循环栏目对应的新闻列表需要根据DataList1获取的kindID来读取tb_article表中的新闻(tb_article中typeID为nvarchar型比如值为 |34|35|,表示该条记录是属于新闻播报栏目下时事新闻)以列表形式显示在对应的栏目下如:
新闻播报(35) 时事新闻(36)
1.** 1.**
2.** 2.**
一行两列的循环,新闻播报下面的1,2记录根据35从tb_article表中筛选typeID like '%35% ' 得到!昨天发贴想父DataList嵌套子DataList来实现的,可是小弟没有做出,这次换个方法:写了一个方法str得到对应栏目下的title的集合并且之间用 <br> 隔开来实现每个栏目下面新闻列表显示的效果代码如下:
后台cs中代码为:
public string retrunTitle(string kindId)
{
//第一步获得 dt2
string TypeId = " ";
string str = " ";
DataTable dt = new DataTable();
try
{
dt = Info_Get_News(Convert.ToInt32(kindId));
}
catch
{

} //根据接收过来的typeid从tb_newskind表调用Info_Get_News方法获得对应typeid的二级栏目的kindID和kindName的数据表dt
for (int m = 0; m < dt.Rows.Count; m++)
{
TypeId = dt.Rows[m][ "kindID "].ToString();
TypeId = "| " + TypeId + "| ";
DataTable dt2 = new DataTable();
try
{


dt2 = Info_Get_DataList(TypeId); //调用Info_Get_DataList方法得到tb_article表中对应typeid的数据表dt2
}
catch
{

}
if (dt2.Rows.Count > 0)
{
for(int i=0;i <dt2.Rows.Count;i++)
{
str+=dt2.Rows[i][ "title "].ToString();
str+= " <br> ";
}
}

}
return str;
}
在Page_Load事件中有接收kindId参数的:
//从传到该页面的请求对象的参数集合中获取kindId
int kindId = 0;
string str = " ";
try
{
kindId = Int32.Parse(Request[ "typeid "]);
}
catch
{
kindId = 0;
}
retrunTitle(kindId.ToString());
前台aspx的代码为(表格中嵌套了一句代码):
<table width= "270 " border= "0 " align= "center " cellpadding= "0 " cellspacing= "0 ">


<tr>
<td width= "270 " height= "20 " colspan= "2 "> <%# retrunTitle(DataBinder.Eval(Container.DataItem, "title ")) %> </td>
</tr>
</table>

错误提示:
最匹配的重载方法具有一些无效参数

参数都是string的,为什么说参数无效呢?大虾帮小弟看看,小弟被这个功能的实现拖的累死了……


[解决办法]
DataBinder.Eval(Container.DataItem, "title ")
--》
Convert.ToString(DataBinder.Eval(Container.DataItem, "title "))

读书人网 >C#

热点推荐