2012-04-10 51 views
3

我需要使用拖拽控件来下令控制列表。我想通过AjaxControlToolkit的ReorderList控件来实现这一点。我已经尝试过所有的工作,但它不会。一切都很顺利,就像填充列表等一样。但是我不能像使用它一样使用这个控件。当页面加载时,它会显示一个列表,左边是一个reordergrip,但是当我尝试拖动一个项目时,它不会拖动。它只是呆在原地。我也尝试过其他浏览器,如IE9 & Firefox。有人可以帮助我解决这个问题吗?我在Visual Studio 2010中使用ASP.NET/C#。AjaxControlToolkit ReorderList不起作用

提前谢谢!

ASPX:

<asp:ScriptManager ID="ScriptManager1" runat="server"> 
    </asp:ScriptManager> 
    <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
     <ContentTemplate> 
     <div class="ajaxOrderedList"> 
      <asp:ReorderList runat="server" DataSourceID="SqlDataSource1" ID="rlData" PostBackOnReorder="true" DragHandleAlignment="Left" ItemInsertLocation="Beginning" SortOrderField="Naam" AllowReorder="true"> 
       <DragHandleTemplate> 
        <asp:Panel ID="dragHandle" runat="server" 
         style="height: 20px; width: 20px; border: solid 1px black; background-color: Red; cursor: pointer;" 
         Visible="<%# ShowDragHandle %>"> 
         &nbsp; 
        </asp:Panel> 
        </DragHandleTemplate> 
       <ItemTemplate> 
        <div class="itemArea"> 
         <asp:Label ID="lblNaam" runat="server" Text='<%# HttpUtility.HtmlEncode(Convert.ToString(Eval("Naam"))) %>' /> 
         <asp:Label ID="lblFunctie" runat="server" Text='<%# HttpUtility.HtmlEncode(Convert.ToString(Eval("Functie"))) %>' /> 
        </div> 
       </ItemTemplate> 
       <ReorderTemplate> 
        <div style="width: 300px; height: 20px; border: dotted 2px black;"> 
         &nbsp; 
        </div> 
       </ReorderTemplate> 
      </asp:ReorderList> 
      </div> 
     </ContentTemplate> 
    </asp:UpdatePanel> 
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:testdataConnectionString %>" 
    SelectCommand="SELECT [id], [naam], [functie] FROM [personen]" DeleteCommand="DELETE FROM [personen] WHERE [id] = @intID" 
       InsertCommand="INSERT INTO [personen] ([naam], [functie]) VALUES (@strNaam, @strFunctie)" 
       UpdateCommand="UPDATE [personen] SET [naam] = @strNaam, [functie] = @strFunctie WHERE [id] = @intID"> 
       <DeleteParameters> 
       <asp:Parameter Name="intID" Type="Int32" /> 
      </DeleteParameters> 
      <UpdateParameters> 
       <asp:Parameter Name="strNaam" Type="String" /> 
       <asp:Parameter Name="srtFunctie" Type="String" /> 
       <asp:Parameter Name="intID" Type="Int32" /> 
      </UpdateParameters> 
      <InsertParameters> 
       <asp:Parameter Name="strNaam" Type="String" /> 
       <asp:Parameter Name="srtFunctie" Type="String" /> 
      </InsertParameters> 
</asp:SqlDataSource> 

代码背后:不工作Reorderlist的

DataView MyDView = null; 

     protected void Page_Load(object sender, EventArgs e) 
     { 
      if (!IsPostBack) 
      { 
       ShowDragHandle = true; 
      } 
     } 

     protected void ReorderList1_ItemReorder(object sender, ReorderListItemReorderEventArgs e) 
     { 
      ShowDragHandle = true; 
     } 

     protected Boolean ShowDragHandle { get; set; } 


     protected void Page_PreInit(object sender, EventArgs e) 
     { 
      //set theme 
      this.Theme = "ServiceSuite"; 
     } 

图片(这是我所得到的,如果我尝试拖动一个项目!):

This is what I get if I try to drag an item!

+0

[这里](http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/ReorderList/ReorderList.aspx)这是我所需要的! – 2012-04-10 08:49:25

+0

也有同样的问题。得到这个 – sandeep 2013-01-30 05:12:52

回答

4

尝试添加以下内容到reorderlist性能

ClientIDMode="AutoID" 
+1

哇这样一个简单的修复,但完美的任何解决方案! – Eliseo 2016-08-22 13:05:14

0

使用老版本的AjaxContro时,看到同样的问题lToolkit。它似乎在当前版本(2012年9月)中得到修复,当然我不能在我的项目中使用这个版本。但也许更新会帮助其他人。