2012-04-19 104 views
0

我在RADGrid上启用了分组,但是当我拖动&拖放一列时,我看到的是拖动时的“CrossHair”光标。我没有看到动画以可视方式显示代表被拖动列的框,也没有看到出现的“双箭头”显示列即将被删除的位置。我在Telerik RADGrid Demo中看到的这些功能,但我似乎都可以在我自己的RADGrid上复制此功能。拖放分组动画不起作用

帮助!

回答

0

我知道这是一个古老的线程,但我只是最近发现我的回答。

在我的自定义模块的Module.css,我添加以下代码:

.RadGrid 
{ 
    z-index: 1000; 
} 

显然,DNN框架的default.css使得模块比格高,的z指数,涵盖动画。将z索引增加到网格本身将其放在模块上方,从而允许再次显示动画。 OMG。

0

请尝试以下链接。这将帮助您获得拖放工作。 Iam目前也使用这种方法。我DNN是6.x版本

http://www.telerik.com/community/forums/aspnet-ajax/grid/unknown-server-tag-telerik-griddragdropcolumn.aspx

*编辑: 呼叫你的Page_Load下面的方法(这仅仅是动态获取脚本块在页面上你必须在所述的步骤我链接,太):

public void subDragDropJavaScript() 
{ 
    // define the script string to add to the page 
    StringBuilder sJavaScript = new StringBuilder(); 
    // js header 
    sJavaScript.Append(("<script type=\'text/javascript\'>" + "\r\n")); 
    sJavaScript.Append("function startRowDrag_ModuleID_"+ this.ModuleId + "_GridID_" + oDNNGrid.ID + "(row, args)" + "\r\n"); 
    sJavaScript.Append("{" + "\r\n"); 
    sJavaScript.Append("var target = args.target || args.srcElement;" + "\r\n"); 
    sJavaScript.Append("if (target.className.indexOf('rgDrag') > -1)" + "\r\n"); 
    sJavaScript.Append("{" + "\r\n"); 
    sJavaScript.Append("args._isDragHandle = true;" + "\r\n"); 
    sJavaScript.Append("var tableView = $find(row.id.split('__')[0]);" + "\r\n"); 
    sJavaScript.Append("var grid = $find(tableView.get_owner().get_id());" + "\r\n"); 
    sJavaScript.Append("tableView.get_dataItems();" + "\r\n"); 
    sJavaScript.Append("$find(row.id).set_selected(true);" + "\r\n"); 
    sJavaScript.Append("var origFunc = Telerik.Web.UI.RadGrid.prototype._canRiseRowEvent;" + "\r\n"); 
    sJavaScript.Append("Telerik.Web.UI.RadGrid.prototype._canRiseRowEvent = function()" + "\r\n"); 
    sJavaScript.Append("{" + "\r\n"); 
    sJavaScript.Append("var el = arguments[0].target || arguments[0].srcElement;" + "\r\n"); 
    sJavaScript.Append("return origFunc.apply(grid, arguments) || el.tagName.toLowerCase() == 'img';" + "\r\n"); 
    sJavaScript.Append("}" + "\r\n"); 
    sJavaScript.Append("grid._mouseDown(args);" + "\r\n"); 
    sJavaScript.Append("Telerik.Web.UI.RadGrid.prototype._canRiseRowEvent = origFunc;" + "\r\n"); 
    sJavaScript.Append("}" + "\r\n"); 
    sJavaScript.Append("}" + "\r\n"); 
    sJavaScript.Append("function gridRowDragStarted_ModuleID_" + this.ModuleId + "_GridID_" + oDNNGrid.ID + "(sender, args) {" + "\r\n"); 
    sJavaScript.Append("if (!args.get_domEvent()._isDragHandle) {" + "\r\n"); 
    sJavaScript.Append("args.set_cancel(true);" + "\r\n"); 
    sJavaScript.Append("}" + "\r\n"); 
    sJavaScript.Append("}" + "\r\n"); 

    // js close block 
    sJavaScript.Append("</script>"); 
    // add js block to page 
    this.Page.ClientScript.RegisterStartupScript(typeof(string), "DragnDropRowSelection_" + ModuleId, sJavaScript.ToString()); 
} 

最好的问候, 没有人

+0

OMG。我认为它是Telerik Grid控件内置的。它需要手动实施?我不确定这会对我有用,因为我混合使用了AutoGenerated和动态创建的列。我不使用ASCX端模板。 :-( – TekkGuy 2012-04-24 12:18:14

+0

它只有在你使用templatecolumns而没有databoundcolumns时才需要(我在telerik论坛的某个地方读过)。你可以在运行时动态地添加你需要的javascriptblock(和我一样)。如果你有兴趣,我想我需要用codesnipets创建一个新的答案 – noonecares 2012-04-24 13:11:03

+0

嗯,我没有使用任何ASCX模板,所有的列都是AutoGenerated或者通过服务器端代码动态生成的,不知道这是否会对我的情况有所帮助,我只是不明白为什么动画不能直接使用(可以这么说)。 – TekkGuy 2012-04-24 21:34:20