RADGridでグループ化を有効にしましたが、列をドラッグアンドドロップすると、ドラッグ中に「CrossHair」カーソルだけが表示されます。ドラッグされている列を表すボックスを視覚的に示すアニメーションも、列がドロップされようとしている場所を示す「二重矢印」も表示されません。Telerik RADGridデモで見たこれらの機能は両方ともありますが、この機能を自分のRADGridで複製しているように見えます。
ヘルプ!
RADGridでグループ化を有効にしましたが、列をドラッグアンドドロップすると、ドラッグ中に「CrossHair」カーソルだけが表示されます。ドラッグされている列を表すボックスを視覚的に示すアニメーションも、列がドロップされようとしている場所を示す「二重矢印」も表示されません。Telerik RADGridデモで見たこれらの機能は両方ともありますが、この機能を自分のRADGridで複製しているように見えます。
ヘルプ!
次のリンクを試してください。これは、ドラッグアンドドロップを機能させるのに役立ちます。現在もこの方法を使用しています。私のDNNはバージョン6.xです
*編集: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());
}
よろしく、誰も
これが古いスレッドであることは知っていますが、最近答えを見つけました。
カスタムモジュールのModule.cssに、次のコードを追加しました。
.RadGrid
{
z-index: 1000;
}
どうやら、DNNフレームワークのdefault.cssは、モジュールのz-indexを、アニメーションを覆っているグリッドよりも高くしているようです。グリッド自体のz-indexを増やすと、モジュールの上に配置され、アニメーションをもう一度表示できるようになります。