Пейджинг, сортировка, редактирование с источником данных LINQ - PullRequest
0 голосов
/ 08 января 2010

Хорошо, хорошо, я последовал примеру Скотта Гу в его блоге, посвященном его части 9 и т. Д., И т. Д., И, несмотря на все мои усилия по достижению «автоматической сортировки, разбиения по страницам и редактирования, я не могу заставить так или иначе работать.

Возможна ли автоматическая сортировка, разбиение на страницы и редактирование при следующих настройках?

<asp:TextBox ID="tbxHowMany" runat="server"></asp:TextBox>

    <asp:RadioButtonList ID="radMaterial" runat="server">
        <asp:ListItem>Paper</asp:ListItem>
        <asp:ListItem>Glass</asp:ListItem>
    </asp:RadioButtonList>


    <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />


    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4" 
        DataSourceID="LQTOPDS" Font-Size="XX-Small" ForeColor="#333333" 
        GridLines="None" DataKeyNames="PriKey" 
        AllowPaging="True" AllowSorting="True">
        <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
        <Columns>
            <asp:CommandField ShowEditButton="True" />
            <asp:BoundField DataField="Productpriority" HeaderText="Productpriority" 
                SortExpression="Productpriority" />
            <asp:BoundField DataField="MemberId" HeaderText="MemberId" 
                SortExpression="MemberId" />
            <asp:BoundField DataField="UnitWeight" HeaderText="UnitWeight" 
                SortExpression="UnitWeight" />
            <asp:BoundField DataField="WeightUnitCode" HeaderText="WeightUnitCode" 
                SortExpression="WeightUnitCode" />
            <asp:BoundField DataField="RecycledContent" HeaderText="RecycledContent" 
                SortExpression="RecycledContent" />
            <asp:BoundField DataField="IsBiodegradable" HeaderText="IsBiodegradable" 
                SortExpression="IsBiodegradable" />
            <asp:BoundField DataField="Recyclability" HeaderText="Recyclability" 
                SortExpression="Recyclability" />
            <asp:BoundField DataField="RevisionSourceCode" HeaderText="RevisionSourceCode" 
                SortExpression="RevisionSourceCode" />
            <asp:BoundField DataField="PriKey" HeaderText="PriKey" 
                SortExpression="PriKey" ReadOnly="True" />
        </Columns>
        <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
        <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
        <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
        <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
        <EditRowStyle BackColor="#999999" />
        <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
    </asp:GridView>

    <asp:LinqDataSource ID="LQTOPDS" runat="server" 
        ContextTypeName="LQTOPDSDataContext" EnableInsert="True" EnableUpdate="True" 
        TableName="tblOnlineReportingCOMPLETEWEIGHTSFINALs" 
        Where="MaterialText == @MaterialText &amp;&amp; Productpriority &lt;= @Productpriority">

        <WhereParameters>
            <asp:ControlParameter ControlID="radMaterial" Name="MaterialText" 
                PropertyName="SelectedValue" Type="String" />
            <asp:ControlParameter ControlID="tbxHowMany" Name="Productpriority" 
                PropertyName="Text" Type="Int32" />
        </WhereParameters>
    </asp:LinqDataSource>

В настоящее время единственный код, который у меня есть, выглядит следующим образом:

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        GridView1.DataSourceID = null;

    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        GridView1.DataSourceID = "LQTOPDS";
            GridView1.DataBind();
    }

}

Это сводит меня с ума ... Я читаю, что эта функция сортировки / разбивки на страницы / редактирования должна быть автоматической, но, очевидно, я делаю что-то не так.

Если кто-то может объяснить мне, почему эта функциональность не генерируется, я был бы очень признателен.

1 Ответ

1 голос
/ 13 января 2010

Наконец, это было достигнуто путем изменения метода создания таблицы, из которой были получены данные.

Я удалил то, что по сути было «SELECT TOP», которое я использовал в качестве предложения where, и использовал другой метод. Я ранжировал данные и использовал 'take' - это эффективно отбирало данные, которые были предварительно упорядочены, и, таким образом, удаляло любые дополнительные выделения, которые вызывали проблемы с поиском по сетке, сортировкой и т. Д.

Если кто-то захочет увидеть код, просто дайте мне знать.

...