用模板列a.aspx<asp:TemplateColumn runat="server" HeaderText="标 题">
 <itemstyle width="75%" horizontalalign="left"/> 
 <itemtemplate>  
  <asp:LinkButton CommandName="view_info" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "detailsID")%>' ID=viewButton text='<%#GetShortStr(DataBinder.Eval(Container.DataItem, "Question").ToString().Trim())%>'  ForeColor="#669999"  runat="server" /> 
</itemtemplate>
</asp:TemplateColumn>a.aspx.cs:写一方法:
public string GetShortStr(string str)      //截取字符串的长度
{
    string ShortStr=str;    if(str.Length>26)
    {
        ShortStr=ShortStr.Substring(0,25).Trim()+"...";
    }
    return ShortStr;
}

解决方案 »

  1.   

    上面是链接下面是限制长度吧。上面的链接不是用代码写的吗。我的意思。点击DataGrid里面一列的任何一个数据,比喻说有一列为公司名称,这列里面每个公司链接,Response.Redirect("gsname.aspx?name="+ XXX +""); XXX 为点击DataGrid哪个数据。
    请问。如何 ,谢谢。
      

  2.   

    在datagrid的OnItemCommand事件中判断:if (((LinkButton)e.CommandSource).CommandName == "view_info")
    {
     detailsID = Convert.ToInt32(e.CommandArgument);  //获得问题ID号 Page.RegisterStartupScript("","<script language='JavaScript'>window.open('../help/helpShow.aspx?detailsID="+detailsID+"','','scrollbars=yes,resizable=yes,toolbar=no,width=700,height=600;');</script>");
    }或者去掉
    <asp:LinkButton CommandName="view_info" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "detailsID")%>' ID=viewButton text='<%#GetShortStr(DataBinder.Eval(Container.DataItem, "Question").ToString().Trim())%>'  ForeColor="#669999"  runat="server" />
    这句,改成:
    <a href="#" onclick="window.open('companies/comInfo_view.aspx?gsID=<%#DataBinder.Eval(Container.DataItem, "gs_id")%>','','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,top=70,left=155,width=700,height=605;')"><%#DataBinder.Eval(Container.DataItem, "b_gsmc").ToString().Trim()%></a>
      

  3.   

    限制列寬也可寫成:
    DataGrid1.Style.Add("WORD-WRAP", "break-word");
    DataGrid1.Columns[0].ItemStyle.Width=5;
      

  4.   

    这个简单,
      Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound
               dim s as string=  e.Item.Cells(2).Text    '第3列的内容 
               if s.length>100 then '进行载取
               s=s.substring(0,50)
        End Sub
      

  5.   

    这个简单,修改下,上面有点错误
      Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound
               dim s as string=  e.Item.Cells(2).Text    '第3列的内容 
               if s.length>100 then '进行载取
               s=s.substring(0,50)
               e.item.cells(2).text=s
        End Sub
      

  6.   

    问 shenen(真的爱你)DataGrid1.Style.Add("WORD-WRAP", "break-word");
    DataGrid1.Columns[0].ItemStyle.Width=5;[0];0是指的DataGrid1中的第一列吗。如果是。我把它换成5(DataGrid列数为6),放在private void Page_Load(object sender, System.EventArgs e) 里面.运行显示错误,
    "索引超出范围。必须为非负值并小于集合大小。参数名: index ".
    问crater(火山口)
    public string GetShortStr(string str)      //截取字符串的长度
    {
        string ShortStr=str;    if(str.Length>26)
        {
            ShortStr=ShortStr.Substring(0,25).Trim()+"...";
        }
        return ShortStr;
    }就这样放着吗。DataGrid是怎么样知道GetShortStr(string str)的??
      

  7.   

    aspx页:放在模板列中<%#GetShortStr(DataBinder.Eval(Container.DataItem, "Question").ToString().Trim())%>
      

  8.   

    DataFormatString而且可以设Wrap=False
      

  9.   

    我的DataGrid中有五个列,但由于里面数据的长度不同。导制五个列在DataGrid中所占比例(DataGrid中的列宽),请问大吓们。怎么样定制DataGrid中每个列的列宽,列中超过列宽者用".....",表示,请教大哥们!!!
      

  10.   

    问  火山口 :
    我要每个列都限制列宽,哪岂不是很麻烦。请问还有其它办法吗。
    如果我要限制每个列宽,是不是他们的在脚本中都要加上text='<%#GetShortStr(DataBinder.Eval(Container.DataItem, "Question").ToString().Trim())%>'愿你火山口早日喷发,终成大业!!!
      

  11.   

    直接在SQL语句里面做,根据要填充的列的长度不同,直接取需要的长度来显示就可以了
      

  12.   

    赐教。我想知道脚本怎么样写。SQL语句忘记了。给个提示。
      

  13.   

    access
    select id,len(title,10) as title,content from test
    oracle 
    seleect id substr(title,1,10) title content from test
      

  14.   

    如果我想定制DataGrid中的列宽,就问怎么样做。谢谢!
      

  15.   

    顶 (net学习中)
    谢谢
    但是效果还是不好。
     我想规定DataGrid中的列宽!!!
      

  16.   

    问  火山口 :
    我要每个列都限制列宽,哪岂不是很麻烦。请问还有其它办法吗。
    如果我要限制每个列宽,是不是他们的在脚本中都要加上text='<%#GetShortStr(DataBinder.Eval(Container.DataItem, "Question").ToString().Trim())%>'愿你火山口早日喷发,终成大业!!!
      

  17.   

    TO:火山口。
    用你的办法。出现错误。
    我是这样加的<asp:HyperLinkColumn 
     DataNavigateUrlField="单位名称" DataNavigateUrlFormatString="ypcx.aspx?str={0}"  DataTextField="单位名称" HeaderText="单位名称"  text='<%#GetShortStr(DataBinder.Eva(Container.DataItem, "Question").ToString().Trim())%>'.CS 
    public string GetShortStr(string str)      //截取字符串的长度
    {
        string ShortStr=str;    if(str.Length>26)
        {
            ShortStr=ShortStr.Substring(0,25).Trim()+"...";
        }
        return ShortStr;
    }
    出现错误.如下:
    编译错误 
    说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 编译器错误信息: CS0117: “System.Web.UI.WebControls.HyperLinkColumn”并不包含对“DataBinding”的定义源错误: 行 27:  <Columns>
    行 28:  <asp:BoundColumn DataField="企业类型" HeaderText="企业类型"></asp:BoundColumn>
    行 29:  <asp:HyperLinkColumn DataNavigateUrlField="单位名称" DataNavigateUrlFormatString="ypcx.aspx?str={0}" DataTextField="单位名称" HeaderText="单位名称" text='<%#GetShortStr(DataBinder.Eval(Container.DataItem, "Question").ToString().Trim())%>'>
    行 30:  </asp:HyperLinkColumn>
    行 31:  <asp:BoundColumn DataField="地址" HeaderText="地址"></asp:BoundColumn
     行 29出现错误。请教怎么办!!1
      

  18.   

    第一个问题:设置每列的宽度
    第二个问题:模板列,hypelink
      

  19.   

    问:我就是不知道怎么样设置DataGrid的宽度。第二个问题我在模板列中已经解决。
      

  20.   

    怎么样设置DataGrid的宽度。超出的用"...."
    表示。
      

  21.   

    没人回答吗.
    我来.
    www.asp.net/coma/1253/126732.xml?temp=wdad315.aspx