【发布时间】:2017-08-29 09:58:33
【问题描述】:
我有两个 GridView:
<asp:GridView ID="gvCourses" runat="server" DataKeyNames="Course_ID" AutoGenerateColumns="False" CssClass="drag_drop_grid GridSrc"
ShowHeaderWhenEmpty="true"
ShowFooter="True">
<Columns>
<asp:BoundField DataField="CourseName"/>
<asp:BoundField DataField="DefaultSlope"/>
</Columns>
</asp:GridView>
<hr/>
<asp:GridView ID="gvDest" runat="server" CssClass="drag_drop_grid drag_and_drop_grid_sortable GridDest" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="CourseName"/>
<asp:BoundField DataField="DefaultSlope"/>
</Columns>
</asp:GridView>
我正在使用以下代码在它们之间进行拖放:
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.8.0.js" type="text/javascript"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.22/jquery-ui.js"></script>
<link rel="Stylesheet" href="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.10/themes/redmond/jquery-ui.css" />
<script type="text/javascript">
$(function () {
$(".drag_drop_grid").sortable({
items: 'tr:not(tr:first-child)',
cursor: 'crosshair',
connectWith: '.drag_drop_grid',
dropOnEmpty: true,
receive: function(e, ui) {
$(this).find("tbody").append(ui.item);
},
sort: function (event, ui) {
var tdCount = 0;
ui.item.find('td').each(function () {
tdCount++;
if (tdCount > 3)
$(this).remove();
});
},
beforeStop: function (event, ui) {
var tdCount = 0;
ui.item.find('td').each(function () {
tdCount++;
if (tdCount > 3)
$(this).remove();
});
},
helper: function (e, tr) {
//copyHelper =
tr.clone().insertAfter(tr);
var tdCount = 0;
tr.find('td').each(function () {
tdCount++;
if (tdCount > 3)
$(this).remove();
});
return tr.clone();
}
});
$("[id*=gvDest] tr:not(tr:first-child)").remove();
});
</script>
它工作正常,但它允许对源网格视图进行排序和复制记录。换句话说,我可以在那个 gridview 上丢掉不想要的东西。
它还允许目标网格复制它自己的记录/表格行。
我需要在我的脚本中更改什么:
- 不允许对源网格进行排序和删除。
- 禁止从目标网格内复制。
谢谢。
【问题讨论】:
标签: c# asp.net jquery-ui gridview drag-and-drop