首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

GridView 以省略號截斷過長字串:完整後台程式碼與資料繫結處理

     編輯:關於C語言

完整後台程式碼 (Code-Behind)

public partial class _Default : System.Web.UI.Page
{
    SqlConnection sqlcon;
    SqlCommand sqlcom;
    string strCon = "Data Source=(local);Database=北風貿易;Uid=sa;Pwd=sa";

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            ViewState["SortOrder"] = "身份證號碼";
            ViewState["OrderDire"] = "ASC";
            BindData();
        }
    }

    void BindData()
    {
        string sqlstr = "SELECT TOP 5 * FROM 飛狐工作室";
        sqlcon = new SqlConnection(strCon);
        SqlDataAdapter da = new SqlDataAdapter(sqlstr, sqlcon);
        DataSet ds = new DataSet();
        sqlcon.Open();
        da.Fill(ds, "飛狐工作室");
        GridView1.DataSource = ds;
        GridView1.DataKeyNames = new[] { "身份證號碼" };
        GridView1.DataBind();

        // DataBound 後逐列截斷「家庭住址」欄位
        for (int i = 0; i < GridView1.Rows.Count; i++)
        {
            DataRowView drv;
            if (GridView1.PageIndex == 0)
                drv = ds.Tables["飛狐工作室"].DefaultView[i];
            else
                drv = ds.Tables["飛狐工作室"].DefaultView[i + (5 * GridView1.PageIndex)];

            string addr = Convert.ToString(drv["家庭住址"]);
            GridView1.Rows[i].Cells[3].Text = SubStr(addr, 2); // 保留 2 字 + ...
        }
        sqlcon.Close();
    }

    string SubStr(string s, int len)
    {
        if (s.Length <= len) return s;
        return s.Substring(0, len) + "...";
    }

    // ... 編輯/刪除/更新/取消編輯/RowDataBound 等事件處理略 ...
}

關鍵點補充

  • 截斷邏輯置於 DataBind() 之後,確保資料已填入儲存格。
  • 分頁時需換算 DefaultView 索引:i + PageSize * PageIndex。
  • SubStr 方法簡單處理,實務上建議依字元寬度 (全形/半形) 計算或使用 CSS text-overflow: ellipsis。
  • RowDataBound 事件中可加入滑鼠懸停提示完整內容 (Tooltip)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved