工作与网格视图
本文关键字:视图 网格 工作 | 更新日期: 2023-09-27 18:05:27
<asp:GridView ID="gridInboxMessage" runat="server"
AutoGenerateColumns="False"
DataSourceID="LinqDataSource1">
<Columns>
<asp:BoundField DataField="Title" HeaderText="title" ReadOnly="True" SortExpression="Title" />
<asp:BoundField DataField="Body" HeaderText="body" ReadOnly="True" SortExpression="Body" />
<asp:BoundField DataField="Sender" HeaderText="sender" ReadOnly="True" SortExpression="Sender" />
<asp:BoundField DataField="Date1" HeaderText="date" ReadOnly="True" SortExpression="Date1" />
</Columns>
</asp:GridView>
<asp:LinqDataSource ID="LinqDataSource1" runat="server"
ContextTypeName="DataClassesDataContext"
Select="new (Title, Body, Sender, Date1)"
TableName="PrivateMessages"
Where="Receptor == @Receptor">
<WhereParameters>
<asp:QueryStringParameter Name="Receptor" QueryStringField="idCompany" Type="String" />
</WhereParameters>
</asp:LinqDataSource>
我有一个asp:GridView从一个LinqDataSource填充。我的问题是
- 正文包含1000个字符,我只能在正文字段显示50个字符(超过流隐藏)。
- 字段
date
内容1/1/2011
我想显示jul 1 2011
字段date
- 字段
sender
等于id(例23)我想显示名称(23=alen)
我将如何实现所有这些?
编辑
答案@naveen是正确的。
我想当用户点击行显示主体完整????
试试这个
标记<asp:GridView ID="gridInboxMessage" runat="server"
AutoGenerateColumns="False"
DataSourceID="LinqDataSource1">
<Columns>
<asp:BoundField DataField="Title" HeaderText="title" ReadOnly="True" SortExpression="Title" />
<asp:TemplateField HeaderText="Body" SortExpression="Body">
<ItemTemplate>
<asp:Label ID="MyBody" runat="server"
Text='<%# TruncateText(Eval("Body"))%>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Sender">
<ItemTemplate>
<asp:Label ID="MySender" runat="server"
Text='<%# GetSenderNameFromID(Eval("Sender"))%>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Date" SortExpression="Date1">
<ItemTemplate>
<asp:Label ID="MyDate" runat="server"
Text='<%# DataBinder.Eval(Container.DataItem, "Date1", "{0:MMMM d yyy}")%>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
背后的代码protected string TruncateText(object objBody)
{
string truncated = "";
if (objBody != null)
{
truncated = objBody.ToString().Length > 50 ?
objBody.ToString().Substring(0, 47) + "..." : objBody.ToString();
}
return truncated;
}
protected string GetSenderNameFromID(object objSenderID)
{
string senderName = "";
if (objSenderID != null)
{
senderName = CallDatabaseToGetNameFromID();
}
return senderName;
}
private string CallDatabaseToGetNameFromID()
{
//implement your database call to retrieve sender name from id
throw new NotImplementedException();
}
首先,如果您想显示发件人的名称而不是ID,则必须修改查询以加入包含名称
的表。对于日期问题,可以使用Format(date, "dd/mm/yyyy")
你能确保你的查询在绑定到网格之前返回所有的字符吗?