Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>Have you tried SPGridView. I used SPGridView and LinqDataSource. All the functionality (sorting,paging,filtering) is taken care of.</p> <p>Here is an example:- a. The SpridView</p> <pre><code> &lt;SharePoint:SPGridView runat="server" ID="spgvUserTrainingLists" AutoGenerateColumns="false" DataSourceID="linqDsEmployeeTrainingLists" DataKeyNames="RowId" OnRowDataBound="spgvUserTrainingLists_RowDataBound" AllowSorting="true" AllowPaging="true" PageSize="15" AllowFiltering="true" FilteredDataSourcePropertyName="Where" FilteredDataSourcePropertyFormat='{1} == "{0}"' FilterDataFields=",TrainingType,,Trainer,Status"&gt; &lt;Columns&gt; &lt;SharePoint:SPBoundField HeaderText="Ref #" SortExpression="RefNo" DataField="RefNo" /&gt; &lt;SharePoint:SPBoundField HeaderText="Type" SortExpression="TrainingType" DataField="TrainingType" /&gt; &lt;asp:TemplateField HeaderText="Training" SortExpression="TrainingTitle"&gt; &lt;ItemTemplate&gt; &lt;asp:HyperLink ID="hlTrainingDetail" runat="server" Text='&lt;%# Eval("TrainingTitle") %&gt;' NavigateUrl="#" /&gt; &lt;/ItemTemplate&gt; &lt;/asp:TemplateField&gt; &lt;SharePoint:SPBoundField HeaderText="Trainer" SortExpression="Trainer" DataField="Trainer" /&gt; &lt;SharePoint:SPBoundField HeaderText="Status" SortExpression="Status" DataField="Status" /&gt; &lt;asp:TemplateField&gt; &lt;ItemTemplate&gt; &lt;asp:ImageButton ID="imgDelete" ImageUrl="~/_layouts/images/DELITEM.GIF" runat="server" UseSubmitBehaviour="false" /&gt; &lt;/ItemTemplate&gt; &lt;/asp:TemplateField&gt; &lt;/Columns&gt; &lt;EmptyDataTemplate&gt; No training yet. &lt;/EmptyDataTemplate&gt; &lt;/SharePoint:SPGridView&gt; &lt;SharePoint:SPGridViewPager ID="SPGridViewPager1" runat="server" GridViewId="spgvUserTrainingLists" /&gt; &lt;aspweb:LinqDataSource runat="server" ID="linqDsEmployeeTrainingLists" OnSelecting="linqDs_Selecting" /&gt; </code></pre> <p>b. SPGridView filter symbol</p> <pre><code>protected void spgvUserTrainingLists_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.Header) { if (!string.IsNullOrEmpty(spgvUserTrainingLists.FilterFieldName)) { for (int i = 0; i &lt; spgvUserTrainingLists.Columns.Count; i++) { DataControlField field = spgvUserTrainingLists.Columns[i]; if (field.SortExpression == spgvUserTrainingLists.FilterFieldName) { Image filterIcon = new Image(); filterIcon.ImageUrl = "/_layouts/images/filter.gif"; filterIcon.Style[HtmlTextWriterStyle.MarginLeft] = "2px"; Literal headerText = new Literal(); headerText.Text = field.HeaderText; PlaceHolder panel = new PlaceHolder(); panel.Controls.Add(headerText); panel.Controls.Add(filterIcon); e.Row.Cells[i].Controls[0].Controls.Add(panel); break; } } } } } </code></pre> <p>c. LinqDataSource</p> <pre><code> protected void linqDs_Selecting(object sender, LinqDataSourceSelectEventArgs e) { object parameter = null; if (e.SelectParameters.TryGetValue("employee", out parameter)) { e.Result = DefaultBLL.GetEmployeeTrainingLists(parameter.ToString()); } } </code></pre> <p>Give it a try since you are using SharePoint. Hope this helps.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload