Reputation: 5297
<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>
I have an asp:GridView populated from an LinqDataSource. My questions are
date
content 1/1/2011
i want show jul 1 2011
in field date
sender
equal id (example 23) i want show name(23=alen)How will I achieve all these?
Edit
answer @naveen is correct.
i want when user click on row show body full????
Upvotes: 0
Views: 471
Reputation: 55200
Try this.
Markup
<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>
Code Behind
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();
}
Hope this helps.
Upvotes: 3
Reputation: 1536
First of all, if you want to show the Name of sender and not ID, you have to modify your query to join in the table that contains the name
For date issue, you can use Format(Date, "dd/mm/yyyy")
Can you ensure that your query actually returns all the characters before binding to the grid?
Upvotes: 0