我使用网格视图显示最近的消息......有数据源...
<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 :(得分: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())%>' />