2009-07-21 5 views
1

J'ai un ReorderList AjaxControlToolkit lié par un SQLDataSource à une table avec le schéma suivant:ASP.NET ReorderList - Mise à jour ne réussit pas

 
OrgID MilestoneID Name Priority 

Le champ de priorité est fixé au ReorderList comme SortOrderField. OrgID est spécifique à chaque utilisateur qui se connecte. L'idée est qu'il existe une liste différente de jalons pour chaque organisation.

J'utilise pas de code derrière. Dans le EditItemTemplate j'ai deux ImageButtons pour mettre à jour et annuler. Lorsque je clique sur Mettre à jour, le nom du jalon est mis à jour mais la priorité est définie sur null. Je ne peux pas comprendre pourquoi cela arrive.

Voici le code source pour le ReorderList et son 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> 

Toutes les idées pourquoi le nom obtiendrait mis à jour, mais la priorité ne serait pas?

+0

A eu des problèmes similaires avec ce contrôle avant et abandonné. Chaque fois que je suis courageux et que je reviens dans l'AjaxControlToolkit, je suis complètement déçu et frustré. En général, je finis par rouler le mien. – JoshJordan

Répondre

2

Je n'ai pas utilisé le contrôle de réordonnancement de visionneuse, mais aurait pensé que vous avez encore besoin pour se lier à la priorité de l'avoir envoyé à votre DataSource? Par exemple.

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

Cela fonctionne. WTH? Cela semble vraiment hokey, mais cela fonctionne, donc +1! –

Questions connexes