ASP.NET ReorderList - сбой обновления - PullRequest
1 голос
/ 22 июля 2009

У меня есть AjaxControlToolkit ReorderList, связанный SQLDataSource с таблицей со следующей схемой:

OrgID   MilestoneID   Name   Priority

Поле Приоритет присоединяется к списку ReorderList как его SortOrderField. OrgID специфичен для каждого пользователя, который входит в систему. Идея состоит в том, что для каждой организации существует отдельный список Вех.

Я не использую код позади. В EditItemTemplate у меня есть две кнопки ImageButton для обновления и отмены. Когда я нажимаю «Обновить», имя вехи обновляется, но приоритет устанавливается равным нулю. Я не могу понять, почему это происходит.

Вот исходный код для ReorderList и его SQLDataSource:

<cc1:ReorderList ID="ReorderList1" runat="server" AllowReorder="True" 
            CssClass="reorderStyle" DataKeyField="MilestoneID" 
            DataSourceID="SqlDataSource2"
            OnItemDataBound="ReorderList1_ItemDataBound" 
            OnItemReorder="ReorderList1_ItemReorder" PostBackOnReorder="True" 
                    SortOrderField="Priority" Width="400px">
                    <ItemTemplate>
                        <asp:ImageButton ID="ImageButton2" runat="server" CommandName="Edit" 
                            ImageUrl="~/Images/edit.gif" />
                        <asp:Label ID="Label1" runat="server"
                    Text='<%# Eval("Name") %>' 
                    ForeColor="Navy" Font-Names="Arial" />
                    </ItemTemplate>
                    <DragHandleTemplate>
                        <img src="../Images/GrabIcon.GIF" style="cursor: move" />&nbsp;
                    </DragHandleTemplate>
                    <InsertItemTemplate>
                    </InsertItemTemplate>
                    <EmptyListTemplate>
                        <asp:Label ID="Label4" runat="server" Font-Bold="True" Font-Italic="False" ForeColor="Red"
                    Text="There are no Associated Milestones currently in the database"></asp:Label>
                    </EmptyListTemplate>
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Name") %>'></asp:TextBox>
                        <asp:ImageButton ID="ImageButton1" runat="server" CommandName="Update" 
                            ImageUrl="~/Images/save.gif" />
                        &nbsp;
                        <asp:ImageButton ID="ImageButton3" runat="server" CommandName="Cancel" 
                            ImageUrl="~/Images/cancel.gif" />
                    </EditItemTemplate>
                </cc1:ReorderList>
                <asp:SqlDataSource ID="SqlDataSource2" runat="server" 
                    ConnectionString="<%$ ConnectionStrings:MyConnectionString %>" 
                    DeleteCommand="DELETE FROM [Milestones] WHERE [MilestoneID] = @MilestoneID" 
                    InsertCommand="INSERT INTO [Milestones] ([OrgID], [Name], [Priority]) VALUES (@OrgID, @Name, @Priority)" 
                    SelectCommand="SELECT MilestoneID, [Name], [Priority] FROM [Milestones] WHERE OrgID = @OrgID ORDER BY [Priority]" 

                    UpdateCommand="UPDATE [Milestones] SET [Name] = @Name, Priority = @Priority WHERE [MilestoneID] = @MilestoneID">
                    <SelectParameters>
                        <asp:ProfileParameter Name="OrgID" PropertyName="OrgID" />
                    </SelectParameters>
                    <DeleteParameters>
                        <asp:Parameter DbType="Guid" Name="MilestoneID" />
                    </DeleteParameters>
                    <UpdateParameters>
                        <asp:Parameter Name="Priority" Type="Int32" />
                        <asp:Parameter Name="Name" Type="String" />
                        <asp:Parameter DbType="Guid" Name="MilestoneID" />
                    </UpdateParameters>
                    <InsertParameters>
                        <asp:ProfileParameter Name="OrgID" PropertyName="OrgID" />
                        <asp:Parameter Name="Name" Type="String" />
                        <asp:Parameter Name="Priority" Type="Int32" />
                    </InsertParameters>
                </asp:SqlDataSource>

Есть идеи, почему Имя будет обновлено, а Приоритет - нет?

1 Ответ

2 голосов
/ 22 июля 2009

Я не использовал элемент управления ReoRder lister, но подумал бы, что вам все еще нужно привязать к приоритету, чтобы отправить его на ваш источник данных? Например.

<asp:TextBox ID="TextBoxPriorty" runat="server" Text='<%# Bind("Priority") %>'></asp:TextBox>
...