您的位置:首页 > 其它

gridview 实现字符串的截断 长的用...表示

2009-07-27 12:53 330 查看
前台代码:
<asp:GridView ID="gvbszn" runat="server" Width="100%" AutoGenerateColumns="False" OnRowCommand="GridView1_RowCommand" ShowHeader="False">
<Columns>
<asp:TemplateField FooterStyle-Width=5%>
<ItemTemplate>
<asp:Image ID="a" ImageUrl="~/jianlizhongxin/images/dot.gif" runat='server' />
</ItemTemplate>
</asp:TemplateField>

<asp:TemplateField HeaderText="标题">
<ItemTemplate>
<asp:LinkButton ID="lbt" runat="server" CommandName="name" Text= '<%#CutString(DataBinder.Eval(Container.DataItem, "title").ToString())%>' ForeColor="red" Font-Underline="true" CommandArgument='<%# Container.DisplayIndex %>'></asp:LinkButton>
</ItemTemplate>
<ItemStyle HorizontalAlign="Left" />
</asp:TemplateField>

<asp:BoundField DataField="publishDate" HeaderText="发布时间" HtmlEncode="False" DataFormatString="{0:yyyy-MM-dd}">
<HeaderStyle Width="10%" />
</asp:BoundField>

</Columns>
</asp:GridView>

后台:

public partial class banshizhinan_control_bazn_shouye : System.Web.UI.UserControl
{
DB db = new DB();
DataTable dt = new DataTable();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
dt = db.SqlDataset("select top 7 * from bszn");
gvbszn.DataSource = dt.DefaultView;
gvbszn.DataBind();
}
}
//切割函数,防止标题过长时影响首页的排版
public static string CutString(string inputString)
{
ASCIIEncoding ascii = new ASCIIEncoding();
int tempLen = 0;
int len = 25;
string tempString = "";
byte[] s = ascii.GetBytes(inputString);
for (int i = 0; i < s.Length; i++)
{
if ((int)s[i] == 63)
{
tempLen += 2;
}
else
{
tempLen += 1;
}

try
{
tempString += inputString.Substring(i, 1);
}
catch
{
break;
}

if (tempLen > len)
break;
}
//如果截过则加上个省略号
byte[] mybyte = System.Text.Encoding.Default.GetBytes(inputString);
if (mybyte.Length > len)
tempString += "...";
return tempString;
}

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "name")
{
dt = db.SqlDataset("select top 7 * from bszn");
int index = Convert.ToInt32(e.CommandArgument.ToString());
string id = dt.Rows[index][0].ToString();
Response.Redirect("~/banshizhinan/bszn_show.aspx?id=" + id);
}
}
}
最关键的是截断函数: public static string CutString(string inputString)

和前台语句:
Text= '<%#CutString(DataBinder.Eval(Container.DataItem, "title").ToString())%>'
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐