鬼鬼DH

导航

 
前台代码: 
<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())%>'

posted on 2009-07-27 12:53  鬼鬼DH  阅读(637)  评论(0编辑  收藏  举报