Asp.Net Gridview Karakter Sınırlama
Asp.net ile bilgileri gridview’de listelerken herhangi bir alanda girilen bir bilgi çok uzunsa örnek olarak mesaj defterinde yazılan mesajlar uzunsa gridview’de görüntü bozukluğu olabilir. Aşağıdaki resimde görüldüğü gibi
Bu görüntüyü düzeltmek için SQL’den çekerken, Çektikten sonra datasette veya GridView’a Databind ederken sorunu çözebilirsiniz.
biz gridview’e bilgileri doldururken yapacağız.
<html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server"> <title>www.aspnetornekleri.com GridView Karakter Sınırlama</title> </head> <body> <form id="form2" runat="server"> <table cellpadding="0" cellspacing="0" width="300px" align="center"> <tr> <td> <asp:GridView ID="GridView1" runat="server" Width="100%" AutoGenerateSelectButton="True" onrowdatabound="karaktersinirla" PageSize="5" > </asp:GridView> </td> </tr> <tr> <td></td> </tr> <tr> <td> </tr> </table> </form> </body> </html>
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) griddoldur(); } public void griddoldur() { OleDbConnection baglanti = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; DATA Source=" + Server.MapPath("App_Data/bilgiler.accdb")); DataSet dts = new DataSet(); OleDbCommand cmd = new OleDbCommand("Select * from mesaj", baglanti); OleDbDataAdapter da = new OleDbDataAdapter(cmd); da.Fill(dts); GridView1.DataSource = dts; GridView1.DataBind(); } protected void karaktersinirla(object sender, GridViewRowEventArgs e) { int i = 0; if (e.Row.RowType == DataControlRowType.DataRow) { foreach (TableCell cell in e.Row.Cells) { i++; string s = HttpUtility.HtmlDecode(cell.Text); if (cell.Text.Length > 25 ) cell.Text = s.Substring(0, 25) + "...."; cell.ToolTip = s; } } }
karaktersinirla fonksiyonunda gridview içindeki hücrelerin uzunluğu 25 karakterden büyükse Substring fonksiyonu ile temizleme fonksiyonu yapılıyor ve ToolTip özelliğine de listenecek bilgi atanarak ilgili hücrelerin üzerine fare ile gelince açıklama çıkması sağlanıyor..