请问.net datalist 模板列中的控件值如何在后台动态绑定?ItemDataBound方法中该如何写?

以往都是在控件databindings或页面中加上<%#DataBinder.Eval(Container,"字段名")%>,但是不够灵活,我想根据条件判断后绑定不同表的... 以往都是在控件databindings或页面中加上<%#DataBinder.Eval(Container, "字段名")%>,但是不够灵活,我想根据条件判断后绑定不同表的字段值,由于不同表字段名不同,那么如何在后台的事件中把模板列中控件所绑定的内容进行切换?
动态改变DATALIST绑定的字段值,比如<%#DataBinder.Eval(Container, "字段名")%>换成<%#DataBinder.Eval(Container, "字段名1")%>
展开
 我来答
宝哥读历史
2011-04-22 · 超过49用户采纳过TA的回答
知道小有建树答主
回答量:92
采纳率:0%
帮助的人:94.5万
展开全部
这个有两个解决办法:
1. 你分两次绑定,asp.net 的代码就要重复写一遍不是很划算。但是这样肯定可以,你在code behide里面根据条件设置可见和不可见即可

2. 如果多个表有关联的话,一次性把数据取出来,放在Dictionary<key, value>比如 key 就用DataSourceType 为‘A表数据’ 或者'B表数据',value就用一个List<>,相当于一个复杂类型了。
等等,你还可以加入c表,d表
前台绑定的时候用if else判断DataSourceType来绑定不同的值。
这个就是思路,如果有什么不懂的再来问我 ,这个最好写一个存储过程来取数据比较好。如果涉及的表比较多。
追问
嗯,方法比较好,但是我在现有成型的基础上修改的话,还是比较繁琐,有什么好方法能直接在事件中对前台绑定的值进行切换?就是将切换成,用ItemDataBound的话如何实现呢?
追答
那你就用if else来判断吧,根据不同的条件来绑定数据,只能这样了
ct520jcl
2011-04-22 · TA获得超过157个赞
知道答主
回答量:46
采纳率:0%
帮助的人:0
展开全部
datalist有一个onitemdatabound事件, 例如:
在datalist中有一个控件<asp:Literal ID="litCompany" runat="server"></asp:Literal>
服务器方法找到控件
FundsResult fundsResult = (FundsResult)e.Item.DataItem;//当前对象
Literal litCompany = (Literal)e.Item.FindControl("litCompany");

判断你自己写
litCompany.Text =。。。。。。
更多追问追答
追问
最关键的就是litCompany.Text =。。。该如何往下写?
我这样尝试过:((Label)(e.Item.FindControl("LB_listitem"))).Text = (DataBinder.Eval(e.Item.DataItem, "news_title")).ToString().Length > 18 ? (DataBinder.Eval(e.Item.DataItem, "news_title")).ToString().Substring(0, 18) + "..." : (DataBinder.Eval(e.Item.DataItem, "news_title")).ToString(); 但是不对。
追答
你是要根据长度来判断显示把
你写一个方法
protected string GetNews_Title(string news_titiel){
if(news_title.length>18){
return news_title.substring(0,18)+"...";
}else{
return news_title;
}
}
页面上九这样用

就不用那个事件了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
121051787
2011-04-22 · 超过16用户采纳过TA的回答
知道答主
回答量:101
采纳率:0%
帮助的人:52.2万
展开全部
sql语句中的 as
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式