CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

请问怎么控制datagrid控件中链接列的文本字符长度呢?

楼主BenHsy(Ben)2006-03-13 16:02:48 在 .NET技术 / ASP.NET 提问

datagrid控件中使用绑定列,之后用以下语句控制文本的长度,但是如果要用链接列呢,应该怎样做呢?先谢谢各位了  
   
   
  private   void   NewsDataGrid_ItemDataBound(object   sender,   System.Web.UI.WebControls.DataGridItemEventArgs   e)  
  {  
  if(e.Item.DataSetIndex   !=   -1)//出去DataGrid的Header  
  {  
  string   ttt   =   e.Item.Cells[0].Text.ToString();  
  int   length   =   e.Item.Cells[0].Text.Length;//获取所需单元格的字符长度  
  if(length   >   29)  
  {  
  e.Item.Cells[0].Text   =   e.Item.Cells[0].Text.Substring(0,28)+"...";//重设单元格内的内容  
  }  
  }  
  } 问题点数:20、回复次数:6Top

1 楼NeilChen123(木野狐)回复于 2006-03-13 16:25:34 得分 20

你用   e.Item.Cells[0].Controls[x]   as   LinkButton  
  得到超级链接。  
  然后对他的   Text   属性做同样操作即可。  
   
  上面表达式里面的   x   是其中   LinkButton   所在的索引,自己替换一下。  
   
  如果不确定索引,那么你可以改用模版列,指定   LinkButton   的   ID,   配合   FindControl   方法。  
   
   
  Top

2 楼BenHsy(Ben)回复于 2006-03-13 16:33:38 得分 0

能麻烦你写清楚点吗,最好给个例子看看,谢谢Top

3 楼NeilChen123(木野狐)回复于 2006-03-13 18:10:11 得分 0

<%@   Page   language="c#"   Codebehind="WebForm1.aspx.cs"   AutoEventWireup="false"   Inherits="csdn1.WebForm1"   %>  
  <!DOCTYPE   HTML   PUBLIC   "-//W3C//DTD   HTML   4.0   Transitional//EN"   >  
  <html>  
      <head>  
          <title>WebForm1</title>  
          <meta   name="GENERATOR"   Content="Microsoft   Visual   Studio   .NET   7.1">  
          <meta   name="CODE_LANGUAGE"   Content="C#">  
          <meta   name=vs_defaultClientScript   content="JavaScript">  
          <meta   name=vs_targetSchema   content="http://schemas.microsoft.com/intellisense/ie5">  
      </head>  
      <body   >  
   
          <form   id="Form1"   method="post"   runat="server"><font   face=宋体><asp:DataGrid   id=DataGrid1   runat="server"   AutoGenerateColumns="False">  
  <columns>  
  <asp:HyperLinkColumn   DataTextField="FirstName"   NavigateUrl="test.htm"></asp:HyperLinkColumn>  
  </Columns></asp:DataGrid></font>  
   
          </form>  
   
      </body>  
  </html>  
   
   
   
  Top

4 楼NeilChen123(木野狐)回复于 2006-03-13 18:10:30 得分 0

using   System;  
  using   System.Collections;  
  using   System.ComponentModel;  
  using   System.Data;  
  using   System.Data.SqlClient;  
  using   System.Drawing;  
  using   System.Web;  
  using   System.Web.SessionState;  
  using   System.Web.UI;  
  using   System.Web.UI.WebControls;  
  using   System.Web.UI.HtmlControls;  
   
  namespace   csdn1  
  {  
  ///   <summary>  
  ///   WebForm1   的摘要说明。  
  ///   </summary>  
  public   class   WebForm1   :   System.Web.UI.Page  
  {  
  protected   System.Web.UI.WebControls.DataGrid   DataGrid1;  
   
  private   void   Page_Load(object   sender,   System.EventArgs   e)  
  {  
  if   (!IsPostBack)  
  {  
  SqlConnection   conn   =   new   SqlConnection("server=.;database=northwind;uid=sa;pwd=;");  
  DataTable   table   =   new   DataTable();  
  SqlDataAdapter   adapter   =   new   SqlDataAdapter("select   FirstName   from   employees",   conn);  
  adapter.Fill(table);  
   
  this.DataGrid1.DataSource   =   table;  
  this.DataGrid1.DataBind();  
  }  
  }  
   
  #region   Web   窗体设计器生成的代码  
  override   protected   void   OnInit(EventArgs   e)  
  {  
  //  
  //   CODEGEN:   该调用是   ASP.NET   Web   窗体设计器所必需的。  
  //  
  InitializeComponent();  
  base.OnInit(e);  
  }  
   
  ///   <summary>  
  ///   设计器支持所需的方法   -   不要使用代码编辑器修改  
  ///   此方法的内容。  
  ///   </summary>  
  private   void   InitializeComponent()  
  {          
  this.DataGrid1.ItemDataBound   +=   new   System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_ItemDataBound);  
  this.Load   +=   new   System.EventHandler(this.Page_Load);  
   
  }  
  #endregion  
   
  private   void   DataGrid1_ItemDataBound(object   sender,   System.Web.UI.WebControls.DataGridItemEventArgs   e)  
  {  
  if   (e.Item.ItemType   ==   ListItemType.Item   ||  
  e.Item.ItemType   ==   ListItemType.AlternatingItem)  
  {  
  HyperLink   btn   =   e.Item.Cells[0].Controls[0]   as   HyperLink;  
  if   (btn   !=   null)  
  {  
  btn.Text   +=   "_加一个尾巴试试";  
  }  
  }  
  }  
  }  
  }  
   
   
   
  Top

5 楼NeilChen123(木野狐)回复于 2006-03-13 18:11:31 得分 0

另外,你判断一个行的类型,用   if   (e.Item.DataSetIndex   !=   -1)   这样写是不好的。  
  看我代码里那一段用   ListItemType   来判定。  
   
   
  Top

6 楼BenHsy(Ben)回复于 2006-03-13 22:35:50 得分 0

非常感谢!Top

相关问题

  • dbgrid控件中如何限制每一列的字符输入?
  • [求助]如何获取列表控件的表头字符串??
  • 怎么给datagrid控件的cell进行赋一个字符串
  • 怎么在List控件中一列中的字符前添加图标?(高分)
  • DataGrid控件的模板列中放一个panel控件。。。。。。。。
  • datagrid控件如何手动添加列?
  • DATAGRID控件的按钮列的问题
  • 分列字符
  • VFP5下,如何在Grid中的某列(字符型)使用下拉列表框控件?
  • 在web页的DataGrid控件的temploate列中,加入DataGrid子控件,引用DataGrid子控件的属性与值!!!

关键词

得分解答快速导航

  • 帖主:BenHsy
  • NeilChen123

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo