日期:2014-05-17  浏览次数:20565 次

页面使用for循环
数据库邦定
<%#DataBinder.Eval(Container, "DataItem.ShopName")%>
长度未知,内容已取出来了
想在页面输出
<table><tr><td>
for(int i=0;i<DataBinder.Eval(Container, "DataItem.ShopName").ToString().Length;i++){
  DataBinder.Eval(Container, "DataItem.ShopName").ToString().Substring(i, i + 1);
}
</td></tr></table>
也就是说把数据帮定的字符串按一个字一个字的提出来显示
请问应该怎么写?

------解决方案--------------------
protected void writechars(string str)
{
string temp = "";
for(int i=0;i<str.length;i++)
{
temp = temp + str.substring(i,1)+ "<br>";
}
return temp;
}

前台调用<%# writechars(DataBinder.Eval(Container, "DataItem.ShopName").ToString()) %>

要求很奇怪,这么循环,效率不是很好。
------解决方案--------------------
真是的!
<%# MyLeft(DataBinder.Eval(Container, "DataItem.ShopName").ToString(),长度)%> 

后台代码
public static string MyLeft(string mText, int byteCount)
{
if (byteCount < 1) 
return mText;

if (System.Text.Encoding.Default.GetByteCount(mText) <= byteCount)
{
return mText;
}
else
{
byte[] txtBytes = System.Text.Encoding.Default.GetBytes(mText);
byte[] newBytes = new byte[byteCount - 4];

for (int i = 0; i < byteCount - 4; i++)
{
newBytes[i] = txtBytes[i];
}
string OutPut = System.Text.Encoding.Default.GetString(newBytes) + "...";
if (OutPut.EndsWith("?...") == true)
{
OutPut = OutPut.Substring(0, OutPut.Length - 4);
OutPut += "...";
}
return OutPut;
}
}
------解决方案--------------------
C# code
protected void writechars(string str) 
{   
   string temp = ""; 
   for(int i=0;i <str.length;i++) 
   { 
       temp = temp + "<a href='a.aspx?gjz=" +str.substring(i,1)+ "'>";   
   } 
   return temp; 
}