datalist显示上的一些问题

BATES 2011-05-15 09:12:25
本人就是想用一个DATALIST中的LABEL在主页显示出公司简介(公司简介总共有1000+字)的前50个字,然后在右下角加个超链接“查看全部”就跳转到公司简介的页面了。
我这个代码是出错的,说是DataBinding:“System.Data.DataRowView”不包含名为“Co_Content”的属性






protected void Page_Load(object sender, EventArgs e)
{
setbin();
}
private string sConnectionString = ConfigurationManager.ConnectionStrings["CompanyConnectionString"].ToString();
private void setbin()
{
SqlConnection conn = new SqlConnection(sConnectionString);
string sql = "SELECT left(Co_Content,50) FROM CompanyInfo";
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
DataSet ds=new DataSet();
da.Fill(ds);
//DataTable dt = ds.Tables[0];
DataList1.DataSource = ds;
DataList1.DataBind();





}
}
前台:
<HeaderTemplate>
  公司简介
</HeaderTemplate>
<ItemTemplate>
  <br /> <asp:Label ID="Label2" runat="server"
style="white-space: pre; break-all" Text='<%# Eval("Co_Content") %>'
Visible="False"></asp:Label>
<br />
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("Co_Content") %>'
Height="174px" TextMode="MultiLine"
Width="240px" BackColor="#99FF33" BorderColor="Red" BorderStyle="Dashed"
BorderWidth="0px" ReadOnly="True"></asp:TextBox>
<img alt="" src="Image/<%# Eval("Co_Image") %>" dir="rtl" height="174" width="240" />
<br />
<asp:Label ID="Label3" runat="server" Text='<%# Eval("Co_Image") %>'
Width="40px"></asp:Label>
<br />
  
</ItemTemplate>
<SelectedItemStyle BackColor="DarkSlateBlue" ForeColor="GhostWhite" />
</asp:DataList>

<div>
...全文
81 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
BATES 2011-05-15
  • 打赏
  • 举报
回复
谢谢大家,问题解决了,最好的方法就是前台截取了,呵呵,因为假如后台用字段截取,就会导致别的控件绑定出错,谢谢大家,我又学到点东西了,呵呵。
BATES 2011-05-15
  • 打赏
  • 举报
回复
大家好热心,好感动。。。。我看估计可以解决了。那个Substr()方法,我不会用。。。是不是放在DB公共类里面啊。
mcluzhi 2011-05-15
  • 打赏
  • 举报
回复
private void setbin()
{
SqlConnection conn = new SqlConnection(sConnectionString);
string sql = "SELECT left(Co_Content,50) as Co_Content FROM CompanyInfo"; SqlDataAdapter da = new SqlDataAdapter(sql, conn);
DataSet ds=new DataSet();
da.Fill(ds);
//DataTable dt = ds.Tables[0];
DataList1.DataSource = ds;
DataList1.DataBind();

改下红色字体部分就可以了


}
mcluzhi 2011-05-15
  • 打赏
  • 举报
回复
你先调试下运行,看看错误出在什么地方
天下在我心 2011-05-15
  • 打赏
  • 举报
回复
你直接读取出来,在前台显示的时候用个字符串截取的方法控制长度就可以了
比如后台读取这个字段
select title from table where .....
前台绑定:
<%# stringFormat(Eval("title").ToString(),40) %>
这样,40表示20个中文字符的宽度
附上字符串截取方法

/// <summary>
/// 截取字符串长度的方法,可判断中英文字符
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public string stringformat(string str,int n)
{
///
///格式化字符串长度,超出部分显示省略号,区分汉字跟字母。汉字2个字节,字母数字一个字节
///
string temp = string.Empty;
if (System.Text.Encoding.Default.GetByteCount(str) <= n)//如果长度比需要的长度n小,返回原字符串
{
return str;
}
else
{
int number = 0;
string st = string.Empty;
while (number < n)
{
st = str.Substring(0, 1);
temp += st;
str = str.Substring(1, str.Length - 1);
if (System.Text.Encoding.Default.GetByteCount(st) > 1)
{
number += 2;
}
else
{
number++;
}
}
return (temp + "...");
}
}
子夜__ 2011-05-15
  • 打赏
  • 举报
回复
"SELECT left(Co_Content,50) as Co_Content FROM CompanyInfo "

或者 都取出来substring()也可以

begintransaction 2011-05-15
  • 打赏
  • 举报
回复

SELECT left(Co_Content,50) as Co_Content FROM CompanyInfo

试试
白云任去留 2011-05-15
  • 打赏
  • 举报
回复
SELECT left(Co_Content,50) as Co_Content FROM CompanyInfo
mcluzhi 2011-05-15
  • 打赏
  • 举报
回复
看下你表中的字段,提示错误信息意思就是,字段绑定出错。
你先调试下看看
BATES 2011-05-15
  • 打赏
  • 举报
回复
高手来帮忙看看。谢谢了。

62,046

社区成员

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

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

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

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