2013-04-08 44 views
-2

我作秀最新的消息使用网格视图...有使用数据源...显示在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是'你好,你好' 它显示完整的味精......但我只显示数据'嗨如何...' 我也尝试设置宽度和高度,但不行。

+0

你应该在你的选择命令过程中做到这一点。有很多方法可以从桌上获得所需的sunstring。你可以在sql server中使用“Left”,“Substring”等。 – 2013-04-08 15:35:25

回答

1

你可以通过向你的代码中添加方法来获取msg或者只是字符串,然后在任何你想要的字符串上进行操作(在特定索引处剪切字符串然后添加...)。然后该方法返回处理后的字符串

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

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

您可以使用模板字段而不是绑定字段。

<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个字符)。您可以修改以适应您的需求。

+0

TENX对于这个问题的答案它的工作完美,但有当我点击选择按钮也不会显示在文本框中全味精....存在码 保护无效GridView1_RowCommand(对象发件人,GridViewCommandEventArgs E) { 如果(E .CommandName ==“Select”) { Int16 num = Convert.ToInt16(e.CommandArgument); Label8.Text = GridView1.Rows [num] .Cells [1] .Text; Label9.Text = GridView1.Rows [num] .Cells [2] .Text; msgtextbox.Text = GridView1.Rows [num] .Cells [4] .Text; } – user2154272 2013-04-08 15:47:58

+0

@ user2154272我已修改它以包含编辑项目模板以及..这应该工作。 – scartag 2013-04-08 15:51:23

+0

对不起,但它不工作..... – user2154272 2013-04-08 16:03:13