2009-07-21 14 views
1

を失敗する私は、次のスキーマを持つテーブルにSqlDataSourceコントロールに縛らAjaxControlToolkit ReorderListていますASP.NET ReorderList - 更新

 
OrgID MilestoneID Name Priority 

Priorityフィールドは、そのSortOrderFieldとしてReorderListに取り付けられています。 OrgIDは、ログインする各ユーザーに固有のものです。アイデアは、Orgごとに異なるマイルストーンのリストがあることです。

私はコードを使用していません。 EditItemTemplateには、UpdateとCancelの2つのImageButtonがあります。更新をクリックすると、マイルストーンの名前が更新されますが、優先度はnullに設定されます。なぜこれが起こっているのか分かりません。ここで

は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> 

名が更新になるだろうが、優先順位はないだろう、なぜ任意のアイデア?

+0

前にこのコントロールと同様の問題があり、あきらめました。私がAjaxControlToolkitに勇気とベンチャーを取り戻すたびに、私は完全に失望し、挫折しました。私はたいてい自分自身を圧倒してしまいます。 – JoshJordan

答えて

2

私はReoRderリスタコントロールを使用していませんが、DataSourceに送信するためにバインドする必要があると考えていましたか?例えば。

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

これは機能します。 WTH?これは本当に奇妙なようですが、それは動作しますので、+1! –

関連する問題