在gridview中只显示一些单词

时间:2013-04-08 15:28:22

标签: c# asp.net gridview

我使用网格视图显示最近的消息......有数据源...

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" Width="586px" AutoGenerateColumns="False" 
                                        DataSourceID="SqlDataSource1" 
                                        onselectedindexchanged="GridView1_SelectedIndexChanged" 
                                        onrowcommand="GridView1_RowCommand">
                                        <Columns>
                                            <asp:CommandField HeaderText="show" ShowSelectButton="True" />
                                            <asp:BoundField DataField="user_id" HeaderText="user_id" 
                                                SortExpression="user_id" />
                                            <asp:BoundField DataField="user_name" HeaderText="user_name" 
                                                SortExpression="user_name" />
                                            <asp:BoundField DataField="sender_mail" HeaderText="sender_mail" 
                                                SortExpression="sender_mail" />
                                            <asp:BoundField DataField="message" HeaderText="message" ReadOnly="True" 
                                                SortExpression="message" ControlStyle-Width="70px" ControlStyle-Height="25">
                                            <ControlStyle Height="20px" Width="50px" />
                                            <HeaderStyle Height="10px" Width="70px" />
                                            <ItemStyle Height="20px" HorizontalAlign="Left" Width="70px" />
                                            </asp:BoundField>
                                        </Columns>
                                    </asp:GridView>

在我的数据库中,如果消息太长,那么它会在一个字段中显示... 例如:-msg是'你好,你好吗' 它显示完整的消息......但我只显示数据'你好怎么......' 我也尝试设置宽度和高度但不起作用。

2 个答案:

答案 0 :(得分:2)

您可以使用模板字段代替boundfield。

    <asp:TemplateField >
    <HeaderTemplate>Message</HeaderTemplate>
    <ItemTemplate>
    <%# Eval("message").ToString().Substring(0,10) %>
    </ItemTemplate>
 <EditItemtemplate>
              <asp:textbox id="Textbox1"
                text='<%#Eval("message")%>'
                width="90"
                runat="server"/>                                      
            </Edititemtemplate>
    </asp:TemplateField>

这里我们正在获取消息的子字符串(仅限10个字符)。你可以根据自己的需要进行修改。

答案 1 :(得分:1)

你可以通过向你的代码中添加方法来实现这一点,这些方法从数据库获取msg,或者只是字符串,然后根据需要在字符串上创建(在特定索引处剪切字符串然后添加...)。然后该方法返回已处理的字符串

public string cutString(string msg)
   {
      int msgLength = 100;
      return msg.Substring(0, msgLength) + "...";
   }

<asp:Label runat="server" Text='<%# cutString(Eval("message").ToString())%>' />