Ajax重新排序列表不可拖动

时间:2009-11-07 21:32:45

标签: asp.net reorderlist

我一直在尝试按照本指南获取基本的重新订单 - > http://www.asp.net/LEARN/Ajax-Control-Toolkit/tutorial-40-vb.aspx。我在浏览器中尝试了一个演示版本,因此它不是浏览器问题。

我在asp.net 2.0上安装了AjaxControlToolkit,DLL文件在Bin文件夹中。

然而,当我运行页面时 - 我得到了我期望的列表,但没有任何东西可以拖动,我看不出我的错误。它将成为一个更复杂的页面的一部分,但我把它带到一个简单的页面来解决问题。

任何人都有任何想法,我在这里可能有什么不对吗?

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ajaxtest.aspx.cs" Inherits="Admin_ST_ajaxtest" %>

<%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    Namespace="System.Web.UI" TagPrefix="asp" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <link href="AdminCSS.css" rel="stylesheet" type="text/css" />
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:SqlDataSource ID="SqlDataSource_LensCatList2" runat="server" 
        ConnectionString="<%$ ConnectionStrings:VS_ConnectionString %>" OldValuesParameterFormatString="original_{0}"
        ProviderName="<%$ ConnectionStrings:VS_ConnectionString.ProviderName %>" 
        DeleteCommand="DELETE FROM [Specs_LensDetailsTbl] WHERE [DBID] = ?" 
        SelectCommand="SELECT Specs_LensDetailsTbl.DBID, Specs_LensDetailsTbl.LensName, Specs_LensCatLookupTbl.OrderNum, Specs_LensCatLookupTbl.Active FROM Specs_LensDetailsTbl LEFT OUTER JOIN Specs_LensCatLookupTbl ON Specs_LensDetailsTbl.DBID = Specs_LensCatLookupTbl.LensDBID WHERE (Specs_LensCatLookupTbl.CatDBID = 1) ORDER BY Specs_LensCatLookupTbl.OrderNum"
        UpdateCommand="UPDATE Specs_LensDetailsTbl SET OrderNum=@OrderNum WHERE [DBID]=@original_id">      
    <UpdateParameters>           
        <asp:Parameter Name="OrderNum" Type="Int32" />           
        <asp:Parameter Name="original_id" Type="Int32" />      
    </UpdateParameters> 
    </asp:SqlDataSource>

    <cc1:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" EnablePartialRendering="true">
    </cc1:ToolkitScriptManager>
    <cc1:ReorderList ID="ReorderList1" runat="server" AllowReorder="True" 
    DataSourceID="SqlDataSource_LensCatList2" PostBackOnReorder="False" 
    DataKeyField="DBID" SortOrderField="OrderNum">
    <DragHandleTemplate>           
        <div class="DragHandleClass">           
        </div>      
    </DragHandleTemplate> 
    <ItemTemplate>
        <asp:Label ID="LensNameLabel" runat="server" Text='<%# Eval("LensName") %>' />
    </ItemTemplate>
    </cc1:ReorderList>


    </div>
    </form>
</body>
</html>

5 个答案:

答案 0 :(得分:14)

好的,如果有人偶然发现这个问题,因为它在我搜索时显示为顶部。

问题是一样的,但直到我在重新订单列表

上设置了一个属性之前,没有任何修正
ClientIDMode="AutoID"

一旦你这样做,就应该有效。

希望有所帮助。

答案 1 :(得分:3)

只是一个建议:查看JQuery的拖放UI:http://jqueryui.com/demos/draggable/

我已经将它与列表一起使用了很长时间,它非常好用,而且比AjaxControlToolkit更容易使用。

只是一个建议。

答案 2 :(得分:1)

固定。需要将其添加到web.config

<httpHandlers>
  <add path="ScriptResource.axd" verb="GET,HEAD" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
</httpHandlers>

答案 3 :(得分:1)

在重新订购列表开始和结束标记

中添加此内容
<DragHandleTemplate>
    <div class="ClsDragHandle">
    </div>
</DragHandleTemplate>

答案 4 :(得分:0)

如果所有代码都正确,这是一个浏览器问题,因为我有同样的问题。如果您在firefox中查看同一页面,那么如果您的代码是正确的,那么它将起作用。