Problem
We have two Grid Views namely Patients and Messages side by side that contains records. When the record gets selected, we need to make the grid records drag able. We need to give provision to drag and place (not Drag & Drop) the record in another grid view record and vice versa.
As a result we need to assign Patients to the respective Messages using Drag. One Patient may have different Messages. Same Message can be assigned to any Patients as many times as possible. Relationship between Messages and Patients is One to Many.
Step by Step Solution for the problem
1. Refer the JQuery Files
2.CSS Style Sheet 3.Here are the Grids 4. JQuery to be called in Code Behind – Page_Load Note : accept: source.selector prevents grid(html table) from accepting its own rows.
We have two Grid Views namely Patients and Messages side by side that contains records. When the record gets selected, we need to make the grid records drag able. We need to give provision to drag and place (not Drag & Drop) the record in another grid view record and vice versa.
As a result we need to assign Patients to the respective Messages using Drag. One Patient may have different Messages. Same Message can be assigned to any Patients as many times as possible. Relationship between Messages and Patients is One to Many.
Step by Step Solution for the problem
1. Refer the JQuery Files
1.<link class="jsbin" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"></link>2.<script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>3.<script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"></script>01.<style>02. div.drag-row03. {04. width: 350px;05. height: 45px;06. background:#ffefc4;07. color:Black;08. }09. .dragrow10. {11. width:100%;12. height:100%;13. background-color:#ffefc4;14. }15..sel-row16.{ background:#ffefc4;17. border: 3px solid #ffba00;18. color:Black;19. 20.}21..sel-row td22.{23. cursor:pointer;24. 25. font-weight:bold;26. 27.}28.</style>01.<asp:GridView ID="grdPatientDetails" Width="99%" AutoGenerateColumns="false" GridLines="None"02. runat="server" BorderColor="White" OnRowDataBound="grdPatientDetails_RowDataBound" CssClass="grdPatientDetails"03. OnSelectedIndexChanged="grdPatientDetails_SelectedIndexChanged" RowStyle-Font-Size="10px" RowStyle-ForeColor="#404040">04. <SelectedRowStyle CssClass="sel-row" />05. </asp:GridView>06. 07.Remember that the CSS class for the Grid is very important as we identify this Grid in jQuery using CSS only. 08.<asp:GridView ID="grdMessageDetails" Width="100%" AutoGenerateColumns="false" GridLines="None"09. runat="server" OnRowCommand="grdMessageDetails_RowCommand" OnRowDataBound="grdMessageDetails_RowDataBound"10. RowStyle-Font-Size="10px" RowStyle-ForeColor="#404040" CssClass="grdMessageDetails" OnSelectedIndexChanged="grdMessageDetails_SelectedIndexChanged">11.<SelectedRowStyle CssClass="sel-row" /> 12.</asp:GridView>01.string dragdrop = @"$(document).ready(function(){02. setupDragDrop($('.grdMessageDetails tr'), $('.grdPatientDetails tr'), 'pat');03. setupDragDrop($('.grdPatientDetails tr'), $('.grdMessageDetails tr'), 'msg');04. }05. );06. 07. function setupDragDrop(source, target, identity) 08. {09. var droppable = 'false';10. source.draggable(11. {12. helper: function(event) 13. {14. $('#" + hdnMsgValue.ClientID + @"').val(identity); 15. if($(this).hasClass('sel-row'))16. {17. droppable = 'true';18. return $('<div class=""drag-row""><table class=""dragrow""></table></div>').find('table').append($(event.target).closest('tr').clone()).end();19. }20. else21. {22. droppable = 'false';23. return $('<div></div>');24. }25. },26. appendTo: 'body'27. });28. target.droppable(29. {30. drop: function(event, ui) {31. if(droppable == 'true')32. {33. var index = $(this)[0].rowIndex;34. $('#" + hdnIndexValue.ClientID + @"').val(index);35. alert(‘dropped’ + hdnIndexValue.ClientID);36. }37. },38. accept: source.selector39. });40. }";41. 42.ScriptManager.RegisterStartupScript(this, GetType(), "DragDrop", dragdrop, true);
0 comments:
Post a Comment