当前位置:编程学习 > C#/ASP.NET >>

在GridView中,我希望某个字段只显示10个字符,后面截取的字符串都以“...”表示,当跳到另一界面时,用“…”代替的信息都全部显示出来

在GridView中,我希望某个字段只显示10个字符,后面截取的字符串都以"..."表示,当跳到另一界面时,用“…”代替的信息都全部显示出来,相当于查看它的详细信息。
 另一界面是显示他的详细信息的!跳到那个界面时,他的信息都全部显示出来。如何写代码呀。求大侠!前面的那个获取截取字段的已经实现了,并且已用”…“代替。就是跳到另一界面时,没有显示他的详细信息。还是“…”显示。现在我要的是:在一个gridiew控件中选中一个数据,显示它的详细信息。原先“…”代替的数据要显示出来! --------------------编程问答--------------------
引用楼主  的回复:
在GridView中,我希望某个字段只显示10个字符,后面截取的字符串都以"..."表示,当跳到另一界面时,用“…”代替的信息都全部显示出来,相当于查看它的详细信息。
 另一界面是显示他的详细信息的!跳到那个界面时,他的信息都全部显示出来。如何写代码呀。求大侠!前面的那个获取截取字段的已经实现了,并且已用”…“代替。就是跳到另一界面时,没有显示他的详细信息。还是“…”显示。现在我要的是:在一个g……

我的blog
http://blog.csdn.net/chinajiyong/article/details/7389998 --------------------编程问答-------------------- 做个模板列吧,自己里面放置一个用来显示内容的组件,这样你控制起来会方便多 --------------------编程问答--------------------
for(int i = 0; i < e.Row.Cells.Count; i++)
            {
                if (e.Row.Cells[i].Text.Length > 10 )
                    e.Row.Cells[i].Text = "<a title=\"" + e.Row.Cells[i].Text + "\" style=\"color:#ff0000;cursor:default\" >" + e.Row.Cells[i].Text.Substring(0, 10) + "...</a>";

            } --------------------编程问答-------------------- 我用的是鼠标双击事件,怎么写代码呀。大侠………
引用 2 楼  的回复:
做个模板列吧,自己里面放置一个用来显示内容的组件,这样你控制起来会方便多
--------------------编程问答-------------------- Substring截取一下后面的用...,跳转到其他页面正常读取数据不受影响! --------------------编程问答-------------------- 我用的是鼠标双击事件,用这个可能不行吧。。。
引用 3 楼  的回复:
for(int i = 0; i < e.Row.Cells.Count; i++)
  {
  if (e.Row.Cells[i].Text.Length > 10 )
  e.Row.Cells[i].Text = "<a title=\"" + e.Row.Cells[i].Text + "\" style=\"color:#ff0000;cursor:default\" >" + ……
--------------------编程问答-------------------- 是用substring截取的呀。可是双击点击那一列获取到的还是“…”,没有显示出来。。
引用 5 楼  的回复:
Substring截取一下后面的用...,跳转到其他页面正常读取数据不受影响!
--------------------编程问答-------------------- 如果双击的话,根据当前行的ID,在新页面里面在去获取他的详细信息不行吗?


如果你是在后台就把这个数据处理过,这样双击出来的肯定是带...的

2楼的方法可试下,放个模板列,点击的时候获取模板列里面的数据 --------------------编程问答-------------------- 传过去的时候 不要截取。 --------------------编程问答--------------------
 方法一:
asp:TemplateField HeaderText="备注" ItemStyle-HorizontalAlign="Left">
                              <ItemTemplate> 
                                      <%#Eval("ipadRemark").ToString().Length > 10 ? Eval("ipadRemark").ToString().Substring(0, 10) + "..." : Eval("ipadRemark")%>  
                              </ItemTemplate> 
                          </asp:TemplateField> 
  /// 方法二
    /// </summary>
    /// <param name="remark"></param>
    /// <returns></returns>
  //处理地址
    public string CutAddress(string address)
    { 
        string str = "";
        if (address == "")
        {
            str = "";
            return str;
        }
        if (address != "" && address.Length > 10)
        {
            str = address.Substring(0, 10) + "...";
        }
        else
        {
            str = address;
        }
        return str;
    }
--------------------编程问答-------------------- 你这个方法只是把需要截取的字符串显示为“…”吧。我要的是之前代替为“…”的信息显示出来。。
引用 10 楼  的回复:
C# code

 方法一:
asp:TemplateField HeaderText="备注" ItemStyle-HorizontalAlign="Left">
                              <ItemTemplate> 
                                      <%#Eval("ipadRemark").ToStri……
--------------------编程问答-------------------- 我以前项目里做过 我找找  --------------------编程问答--------------------
引用 6 楼  的回复:
我用的是鼠标双击事件,用这个可能不行吧。。。引用 3 楼  的回复:
for(int i = 0; i < e.Row.Cells.Count; i++)
  {
  if (e.Row.Cells[i].Text.Length > 10 )
  e.Row.Cells[i].Text = "<a title=\"" + e.Row.Cells[i].Text + "\" style=\……

这个写在行绑定里面不影响你的双击事件啊  --------------------编程问答--------------------

.mlength
          {
          text-align : left;
          display: block;
          width: 300px;
          overflow: hidden;  
          white-space: nowrap;
          -o-text-overflow: ellipsis;
          text-overflow: ellipsis;
          
          }



 <asp:TemplateField HeaderText="">
                                    <ItemTemplate>
                                 <asp:Label ID="Label1" runat="server" Text='<%# Eval("") %>' CssClass="mlength" ToolTip='<%# Eval("xxx") %>'></asp:Label>
                                  </ItemTemplate>
                                </asp:TemplateField>




 protected void gridview_DataBound(object sender, EventArgs e)
    {
        foreach (GridViewRow row in gvLawName.Rows)
        {
            foreach (TableCell cell in row.Cells)
                if (cell.Text.Length > 25)
                    cell.Text = cell.Text.Substring(0, 10) + "...";
        }
    }
    protected void gridview_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            ((Label)e.Row.Cells[0].FindControl("Label1")).ToolTip = ((Label)e.Row.Cells[0].FindControl("Label1")).Text;
        }

    }
--------------------编程问答--------------------
    /// <summary>
    /// 行绑定
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void gvdata_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
           
            for(int i = 0; i < e.Row.Cells.Count; i++)
            {
                if (e.Row.Cells[i].Text.Length > 13 && i != itake)
                    e.Row.Cells[i].Text = "<a title=\"" + e.Row.Cells[i].Text + "\" style=\"color:#ff0000;cursor:default\" >" + e.Row.Cells[i].Text.Substring(0, 13) + "...</a>";

             }
         }
}
--------------------编程问答-------------------- 上面还有点没改回来
 if (cell.Text.Length > 10)
                    cell.Text = cell.Text.Substring(0, 10) + "...";
--------------------编程问答-------------------- 这个事件有用过吗?OnCustomDblClick  ,我用的是这个双击事件。 
引用 16 楼  的回复:
上面还有点没改回来
 if (cell.Text.Length > 10)
  cell.Text = cell.Text.Substring(0, 10) + "...";
--------------------编程问答--------------------
引用 17 楼  的回复:
这个事件有用过吗?OnCustomDblClick ,我用的是这个双击事件。 

引用 16 楼 的回复:
上面还有点没改回来
if (cell.Text.Length > 10)
cell.Text = cell.Text.Substring(0, 10) + "...";



第一次看到OnDblClick倒是认识 --------------------编程问答-------------------- 这么多高手啊,顶一下吧 --------------------编程问答-------------------- 我也是第一次用。。所以不会用。。还是挺谢谢你的。呵呵……
引用 18 楼  的回复:
引用 17 楼 的回复:
这个事件有用过吗?OnCustomDblClick ,我用的是这个双击事件。

引用 16 楼 的回复:
上面还有点没改回来
if (cell.Text.Length > 10)
cell.Text = cell.Text.Substring(0, 10) + "...";



第一次看到OnDblClick倒是认识
--------------------编程问答-------------------- 将你截取好的字符串(就是前10个字符)获取出来后,从后面的字符开始,你直接用“.....”追加到后面,这些做好之后,在处理这些字符的单击事件中重新调用你获取所有信息的方法,就可以了。 --------------------编程问答-------------------- 我用是 OnCustomDblClick 这个双击事件,知道怎么用么?……引用 8 楼  的回复:]
如果双击的话,根据当前行的ID,在新页面里面在去获取他的详细信息不行吗?


如果你是在后台就把这个数据处理过,这样双击出来的肯定是带...的

2楼的方法可试下,放个模板列,点击的时候获取模板列里面的数据
[/Quote] --------------------编程问答-------------------- 用的是这个的OnCustomDblClick双击事件。不知道怎么写。。。
引用 21 楼  的回复:
将你截取好的字符串(就是前10个字符)获取出来后,从后面的字符开始,你直接用“.....”追加到后面,这些做好之后,在处理这些字符的单击事件中重新调用你获取所有信息的方法,就可以了。
--------------------编程问答-------------------- --------------------编程问答-------------------- 你没毛病吧?……  
引用 24 楼  的回复:
 你是一枚落花,揽着夕阳的落音随西风轻摇,如泪雨漂泊,怎奈前缘已断,我的刻骨与思念,唯有在幽幽的风声里化作今生的感叹,入红尘,入来世。你如浮南京治疗白癜风医院云飘过我的视线,我只有流连在梦的枕边,借着淡淡的酒香,将你默默的思念。青灯燃泪,红烛诉怨,袅袅的青烟捻着我的忧伤,缭绕着清泪成江苏治白癜风最好医院两瓣。眉宇锁清愁,红笺蘸墨梦难圆,一盏幽思入梦境,冥冥注定中,一缕夙愿落下满城风雨声。今生难过情……
--------------------编程问答-------------------- <%#Eval().ToString().Length>10?Eval().ToString().SubString(0,10)+"...":Eval()%>

当然,要在TemplateField里写 --------------------编程问答-------------------- 请教您一个问题:
<asp:TemplateField HeaderText="操作信息" SortExpression="strShortInfo">
                                        <ItemTemplate>
                                            <asp:Label ID="Label1" runat="server" Text='<%# MySubstring(DataBinder.Eval(Container.DataItem,"strShortInfo").ToString()) %>'></asp:Label>
                                        </ItemTemplate>

                                        <HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
                                        <ItemStyle HorizontalAlign="Left" VerticalAlign="Middle" Wrap="False" />
                                    </asp:TemplateField>
我这样写的模板列对么?
引用 2 楼  的回复:
做个模板列吧,自己里面放置一个用来显示内容的组件,这样你控制起来会方便多
--------------------编程问答-------------------- 已经写到里面了。可获取到的值还是空的。。
引用 26 楼  的回复:
<%#Eval().ToString().Length>10?Eval().ToString().SubString(0,10)+"...":Eval()%>

当然,要在TemplateField里写
--------------------编程问答-------------------- <asp:TemplateField HeaderText="操作信息" SortExpression="strShortInfo">
  <ItemTemplate>
  <asp:Label ID="Label1" runat="server" Text='<Eval("col").ToString().Length>10?<Eval("col").ToString().subString(0,10)+"..":<Eval("col").ToString();'></asp:Label>
  </ItemTemplate>

  <HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" Wrap="False" />
  <ItemStyle HorizontalAlign="Left" VerticalAlign="Middle" Wrap="False" />
  </asp:TemplateField> --------------------编程问答-------------------- 写错了,是Text="<%#Eval("")%>" --------------------编程问答-------------------- 那个MySubstring是我在后台写的一个方法。。这里是调用它。
现在主要是那一个字段没有获取到值。不知道什么原因。
引用 30 楼  的回复:
写错了,是Text="<%#Eval("")%>"
--------------------编程问答-------------------- 我这个不知道可否帮到你

<span><%# GetStrA( Eval("Content"),50)%></span>

后台:

/// <summary>
    /// 字符串截取
    /// </summary>
    /// <param name="str">需要截取的字符串</param>
    /// <param name="strLen">截取长度</param>
    /// <returns></returns>
    public static string GetStrA(object objStr, int strLen)
    {
        string str = objStr.ToString();
        if (str.Length < strLen)//如果输入的字符串长度小于指定的长度
        {
            str = str.Substring(0, str.Length);//字符长度大于字符长度
        }
        else
        {
            str = str.Substring(0, strLen) + "...";
        }
        return str;
    }

    /// <summary>
    /// 字符串截取,无省略号
    /// </summary>
    /// <param name="str">需要截取的字符串</param>
    /// <param name="strLen">截取长度</param>
    /// <returns></returns>
    public static string GetStrB(object objStr, int strLen)
    {
        string str = objStr.ToString();
        if (str.Length < strLen)//如果输入的字符串长度小于指定的长度
        {
            str = str.Substring(0, str.Length);//字符长度大于字符长度
        }
        else
        {
            str = str.Substring(0, strLen) ;
        }
        return str;
    }
--------------------编程问答-------------------- 您用的是什么事件??
引用 32 楼  的回复:
我这个不知道可否帮到你

HTML code


<span><%# GetStrA( Eval("Content"),50)%></span>


后台:

C# code


/// <summary>
    /// 字符串截取
    /// </summary>
    /// <param name="str">需要截取的字符串</param>
   ……
--------------------编程问答-------------------- 清清月儿的 72绝技里貌似有这个吧 楼主可以参考一下 --------------------编程问答--------------------
引用 33 楼  的回复:
您用的是什么事件??引用 32 楼  的回复:
我这个不知道可否帮到你

HTML code


<span><%# GetStrA( Eval("Content"),50)%></span>


后台:

C# code


/// <summary>
/// 字符串截取
/// </summary>
/// <param name="str">需要截取的字符……

不是哪个事件,就一个方法函数
这个写的是后台的一个方法,直接运用到前台数据绑定 --------------------编程问答-------------------- 这个知道。我说你选中那行数据跳到另外一个界面,没有用到事件吗?
不知你用过OnDblClick这个事件没???
引用 35 楼  的回复:
引用 33 楼 的回复:

您用的是什么事件??引用 32 楼 的回复:
我这个不知道可否帮到你

HTML code


<span><%# GetStrA( Eval("Content"),50)%></span>


后台:

C# code


/// <summary>
/// 字符串截取
/// </summary>
/// <param name……
--------------------编程问答-------------------- 哦。他那个只是截取数据而已!我要的是获取用“…”代替的那些数据。。。
不过还是很感谢你!……  
引用 34 楼  的回复:
清清月儿的 72绝技里貌似有这个吧 楼主可以参考一下
--------------------编程问答-------------------- <%#Eval("字段").ToString().Length>10?Eval("字段").ToString().SubString(0,10)+"...":Eval("字段")%> --------------------编程问答-------------------- 恩,你这个方法也只是截取数据而已呢。我想双击鼠标跳到另一界面后,能够把它用“…”代替的数据都显示出来。。
引用 38 楼  的回复:
<%#Eval("字段").ToString().Length>10?Eval("字段").ToString().SubString(0,10)+"...":Eval("字段")%>
--------------------编程问答-------------------- 在当前页面用三元表达式去判断、截取。传到详细页面的时候、传全部、或者ID、在从数据库读一次也行啊。 --------------------编程问答--------------------
引用 37 楼  的回复:
哦。他那个只是截取数据而已!我要的是获取用“…”代替的那些数据。。。
不过还是很感谢你!…… 

引用 34 楼 的回复:
清清月儿的 72绝技里貌似有这个吧 楼主可以参考一下


哎呀,你直接获取你编辑行的id,然后根据id查询显示相关信息不就行了 --------------------编程问答-------------------- <a href="ShowDetail.aspx"><%# Eval("title").ToString().length>10?Eval("title").ToString().length(0,10)+"...":Eval("title").ToString()%></a>

你在ShowDetail.aspx中直接绑定就行  <%# Eval("title").ToString()%> --------------------编程问答-------------------- 我在gridview上写了

我想这样子做:在 GridView中 放一个隐藏列,把截取的数据放到这个里面。在跳转另一界面时把隐藏列的数据获取出来。不知道怎写。大侠帮帮忙呀。。。
引用 41 楼  的回复:
引用 37 楼 的回复:
哦。他那个只是截取数据而已!我要的是获取用“…”代替的那些数据。。。
不过还是很感谢你!……

引用 34 楼 的回复:
清清月儿的 72绝技里貌似有这个吧 楼主可以参考一下


哎呀,你直接获取你编辑行的id,然后根据id查询显示相关信息不就行了
--------------------编程问答-------------------- 鼠标双击选中该行数据还是“…”这样。数据没有全部显示出来。。。
引用 42 楼  的回复:
<a href="ShowDetail.aspx"><%# Eval("title").ToString().length>10?Eval("title").ToString().length(0,10)+"...":Eval("title").ToString()%></a>

你在ShowDetail.aspx中直接绑定就行 <%# Eval("title").ToString()%>
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,