-2

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

<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 是'嗨,你好吗' 它显示完整的味精......但我只显示数据'嗨,怎么样... ' 我也尝试设置宽度和高度,但不起作用。

4

2 回答 2

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 个字符)。您可以修改以满足您的需要。

于 2013-04-08T15:33:37.180 回答
1

您可以通过将方法添加到您的代码中,该方法从 DB 中获取 msg 或只是字符串,然后您在该字符串上创建任何您想要的(在特定索引处剪切字符串然后添加...)。然后该方法返回处理后的字符串

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

<asp:Label runat="server" Text='<%# cutString(Eval("message").ToString())%>' />
于 2013-04-08T15:32:48.863 回答