jQWidgets Forums
This topic contains 6 replies, has 2 voices, and was last updated by Dimitar 10 years, 10 months ago.
`<%@ Control Language=”C#” AutoEventWireup=”true” CodeBehind=”RelativeControl.ascx.cs”
Inherits=”TalonPro.Controls.RelativeControl” %>
<!– Relation Popup related javascripts – start –>
<script language=”javascript” type=”text/javascript”>
/*****************************************************************
#region Global Variables – Start
*****************************************************************/
var IsUpdateRelatives = true;
var selGenderId = 1, selRelatiosnhipid = 1, selpersonid = 1, selPrimarycntc;
var relColumnDataField = ”, relRowIndex = ”, relCellValue = ”, relOldValue = ”;
var _GenderDataAdapter, _RelationshipDataAdapter;
var editrow = -1; var varIsPrimaryContact = false;
var gender_id, Relationshipid;
var _defaultValue = 0;
/**********
#endregion
**********/
/*****************************************************************
#region Functions used for showing relative dialog box- Start
*****************************************************************/
function ShowRelativeDialogBox() {
$(“#ctl00_ContentPlaceHolder1_ucContactControl_ucAccountGuestContactLookup_btnLookup”).css(“display”, “none”);
_GenderDataAdapter = null, _RelationshipDataAdapter = null;
FetchData(“”, “”, ‘?Data_RC=GetRelativeDtlsToBind’, ‘RelativesData’, true);
return false;
}
/**********
#endregion
**********//*****************************************************************
#region Functions used for bind the relative data- Start
*****************************************************************/
function OnGetRelDataComplete(strId, strColumns, result, EntityName) {
if (EntityName == ‘GetGenderAndRelationDtls’ && result.length >= 2) {}
}
/**********
#endregion
**********/
/*****************************************************************
#region Functions used for adding new row- Start
*****************************************************************/
function AddNewRow() {
var rowscount = $(“#RelativeJqxGrid”).jqxGrid(‘getdatainformation’).rowscount;
var varPersonID = 0;
if (rowscount > 0) {
varPersonID = -rowscount;
}
var datarow = {};
datarow[“sno”] = rowscount;
datarow[“person_id”] = varPersonID;
datarow[“person”] = ”;
datarow[“Relationshipid”] = 1;
datarow[“Relationship”] = ‘Son’;
datarow[“Relative_age”] = 0;
datarow[“isprimarycontact”] = false;
datarow[“isOccupant”] = true;
datarow[“gender_id”] = 1;
datarow[“gender”] = ‘Male’;
$(“#RelativeJqxGrid”).jqxGrid(‘addrow’, rowscount, datarow, ‘last’);
};
/**********
#endregion
**********/
<%–Added by ashok to remove rows that are not saved***START***on 15Feb2014 –%>
function DeleteRow() {
var rowscount = $(“#RelativeJqxGrid”).jqxGrid(‘getdatainformation’).rowscount;
var rowId = $(“#<%=hdnNoOfRows.ClientID %>”).val();
for (var intLoop = rowscount; parseInt(rowId) < parseInt(intLoop) ; parseInt(intLoop–))
// 1. Remove the row from the grid
{
if (rowId >= 0 && rowId < rowscount) {
var id = $(“#RelativeJqxGrid”).jqxGrid(‘getrowid’, rowId);
var commit = $(“#RelativeJqxGrid”).jqxGrid(‘deleterow’, id);
}
else {
break;
}
}
$(‘#RelativeJqxGrid’).jqxGrid(‘refreshdata’);
}
function setValue() {
_defaultValue = 1;
}
<%–***END*** –%>
/*****************************************************************
#region Functions used for showing relative dialog box- Start
*****************************************************************/
var sourceRelative = null;function OnGetTableRelDataComplete(result) {
if (result.length >= 3) {
_GenderDataAdapter = DropdownSource(‘gender_id’, ‘gender,gender_id’, result[0]);
_RelationshipDataAdapter = DropdownSource(‘relatives_type_id’, ‘relatives_type,relatives_type_id’, result[1]);
var relationDdl;
$(“#<%=hdnNoOfRows.ClientID %>”).val(result[2].length);
InitRelativePopup();
if (sourceRelative != null && sourceRelative != undefined) {
sourceRelative.localdata = result[2];
$(“#RelativeJqxGrid”).jqxGrid({ source: sourceRelative });
}
else {
var theme = ‘office’;
var arrDataFields = new Array();
var strColumns = new Array(‘sno’, ‘person_id’, ‘person’, ‘Relationshipid’, ‘Relationship’, ‘Relative_age’,
‘isprimarycontact’, ‘isOccupant’, ‘gender’, ‘firstName’,
‘lastName’, ‘Address’, ‘City’, ‘State’, ‘workPhone’, ‘Emailid’);
var varType = ‘string’;
for (var intLoop = 0; intLoop < strColumns.length; intLoop++) {
switch (strColumns[intLoop]) {
case ‘isprimarycontact’ || ‘isOccupant’:
varType = ‘bool’
break;
default:
varType = ‘string’
break;
}
arrDataFields.push(CreateDataField(strColumns[intLoop], varType));
}
var objDataFields = JSON.stringify(arrDataFields);
objDataFields = $.parseJSON(objDataFields);
sourceRelative = {
datatype: “json”,
datafields: objDataFields,
id: ‘sno’,
cache: false,
localdata: result[2], // url: ‘?Data=GetRelativeDtlsToBind’,
addrow: function (rowid, rowdata, position, commit) {
//debugger;
var vardata = “addnew=true|sno=” + rowdata.sno + “|person_id=” + rowdata.person_id + “|person=” +
rowdata.person + “|Relationshipid=” + rowdata.Relationshipid;
vardata = vardata + “|Relationship=” + rowdata.Relationship + “|Relative_age=” + rowdata.Relative_age + “|isprimarycontact=” +
rowdata.isprimarycontact + “|isOccupant=” + rowdata.isOccupant;
vardata = vardata + “|gender=” + rowdata.gender + “|gender_id=” + rowdata.gender_id;
var jsonText = JSON.stringify({ strRowDtls: vardata });
$.ajax({
type: “POST”,
cache: false,
url: “?Data_RC=AddNewRow&strRowDtls=” + vardata,
contentType: “application/json; charset=utf-8″,
dataType: “json”,
success: function (result) {
//OnUpdateComplete(result);
}
});
commit(true);
$(‘#RelativeJqxGrid’).jqxGrid(‘refreshdata’);
},
updaterow: function (rowid, rowdata, commit) {
if (IsUpdateRelatives == true) {
// synchronize with the server – send update command
if (selGenderId != null) {
rowdata[‘gender_id’] = selGenderId;
selGenderId = null;
}
if (selRelatiosnhipid != null) {
rowdata[‘Relationshipid’] = selRelatiosnhipid;
if (selRelatiosnhipid == 2 || selRelatiosnhipid == 5) { // Harshil — THD — 27 July 2013 — By Default setting Mother’s and Daughter’s Gender as Female.
rowdata[‘gender_id’] = 2;
rowdata[‘gender’] = “Female”;
}
else if (selRelatiosnhipid == 1 || selRelatiosnhipid == 4) // Harshil — THD — 27 July 2013 — By Default setting Son and Father’s Gender as Male.
{
rowdata[‘gender_id’] = 1;
rowdata[‘gender’] = “Male”;
}
selRelatiosnhipid = null;}
selPrimarycntc = rowdata[‘isprimarycontact’];
_isPrimaryChanged = rowdata[‘isprimarycontact’];
if (selPrimarycntc == true) {
var rowscount = $(“#RelativeJqxGrid”).jqxGrid(‘getdatainformation’).rowscount;
for (var intIndex = 0; intIndex < rowscount; intIndex++) {
var datarow = $(‘#RelativeJqxGrid’).jqxGrid(‘getrowdata’, intIndex);
datarow[‘isprimarycontact’] = ‘false’;
}
rowdata[‘isprimarycontact’] = ‘true’;
}
var varData = JSON.stringify(rowdata);
var jsonText = JSON.stringify({ strData: varData });
if (relColumnDataField != ” && relOldValue != relCellValue) {
var datarow = $(“#RelativeJqxGrid”).jqxGrid(‘getrowdata’, relRowIndex);
if (relColumnDataField == ‘Relationshipid’ || relColumnDataField == ‘gender_id’) {
relCellValue = relCellValue.value;
}
if (datarow != null) {
var params = “person_id=” + datarow.person_id + “&columnName=” + relColumnDataField + “&Value=” + relCellValue;
$.ajax({
type: “POST”,
url: “?Data_RC=UpdateRelativesDetails&” + params,
data: jsonText,
contentType: “application/json; charset=utf-8″,
dataType: “json”,
async: false,
success: function (result) {
//OnUpdateComplete(result);
}
});
commit(true);
$(‘#RelativeJqxGrid’).jqxGrid(‘refreshdata’);
if (relColumnDataField == ‘Relationshipid’) {
relColumnDataField = ‘gender_id’;
var params = “person_id=” + datarow.person_id + “&columnName=” + relColumnDataField + “&Value=” + rowdata[‘gender_id’];
$.ajax({
type: “POST”,
url: “?Data_RC=UpdateRelativesDetails&” + params,
data: jsonText,
contentType: “application/json; charset=utf-8″,
dataType: “json”,
async: false,
success: function (result) {
//OnUpdateComplete(result);
}
});
commit(true);
$(‘#RelativeJqxGrid’).jqxGrid(‘refreshdata’);
}
return;
}
}
commit(false);
}
else {
commit(false);}
$(‘#RelativeJqxGrid’).jqxGrid(‘refreshdata’);}
};
$(“#RelativeJqxGrid”).on(‘cellbeginedit’, function (event) {
//generate(‘alert’, ‘Saving Charges Details…..’, ‘center’, 5);
CopyDetails(event.args);
});
$(“#RelativeJqxGrid”).on(‘cellendedit’, function (event) {
CopyDetails(event.args);
if (event.args != null && event.args.datafield != null && event.args.datafield == “isprimarycontact” && event.args.value == true) {
editrow = event.args.rowindex;
var selrowDtls = $(“#RelativeJqxGrid”).jqxGrid(‘getrowdata’, editrow);
// open the popup window when the user clicks a button.
var rowscount = $(“#RelativeJqxGrid”).jqxGrid(‘getdatainformation’).rowscount;
for (var intIndex = 0; intIndex < rowscount; intIndex++) {
if (intIndex != editrow) {
var rowDtls = $(“#RelativeJqxGrid”).jqxGrid(‘getrowdata’, intIndex);
rowDtls.isprimarycontact = false;
}
}
var offset = $(“#RelativeJqxGrid”).offset();
ClearNewContactFields();
OpenGuestContactPopup(true, false, false);
$(‘#ctl00_ContentPlaceHolder1_ucContactControl_ddlContactType’).val(“7″); //7 – Guest Contact Type
}
});
var dataAdapter = new $.jqx.dataAdapter(sourceRelative);
var cellsrenderer = function (row, columnfield, value, defaulthtml, columnproperties) {
if (value.length > 15) {
var varReplaceStr = value.substring(0, 16) + “..”;
defaulthtml = defaulthtml.replace(value, varReplaceStr);
}
var newHTML = defaulthtml + “<div class=’jqx-icon-arrow-down jqx-icon’ style=’width: 16px; height: 16px; top: -30%; left: 40%;’></div>”;
return newHTML;
};
$(“#RelativeJqxGrid”).jqxGrid({
source: dataAdapter,
width: 690,
height: 215,
editable: true,
theme: theme,
virtualmode: false,
columns: [
{
text: ‘person_id’, columntype: ‘textbox’, datafield: ‘person_id’, width: 150, hidden: true
},
{
text: ‘Person’, columntype: ‘textbox’, datafield: ‘person’, width: 150, editable: true
},
{
text: ‘Relationship’, columntype: ‘dropdownlist’, displayfield: ‘Relationship’, datafield: ‘Relationshipid’, width: 120, cellsrenderer: cellsrenderer,
createeditor: function (row, value, editor) {
relationDdl = editor;
editor.jqxDropDownList({ source: _RelationshipDataAdapter, displayMember: ‘relatives_type’, valueMember: ‘relatives_type_id’, id: ‘ddlRelationship’ });
editor.jqxDropDownList(‘selectIndex’, 0);
editor.on(‘open’, function (event) {
// Modified from ‘click’ to ‘open’ by Abijeet on 9/26/2013 4:47:39 AM, to open the dropdown list on single click..
$(“#listBoxdropdownlisteditorRelativeJqxGridRelationshipid”).css(‘z-index’, ‘9999’);
});
editor.on(‘select’, function (event) {
// Written by Abijeet on 9/26/2013 4:02:21 AM, to open the dropdown list on single click..
$(this).jqxDropDownList(‘open’);
var args = event.args;
if (args) {
generate(‘alert’, ‘Saving Charges Details…..’, ‘center’, 5);
var item = args.item;
if (item != null) {
selRelatiosnhipid = item.value;
}
}
});
}
},
{
text: ‘Age’, columntype: ‘numberinput’, datafield: ‘Relative_age’, width: 85, cellsalign: ‘right’,
createeditor: function (row, value, editor) {
editor.jqxNumberInput({ min: 0, max: 100, decimalDigits: 0, spinButtons: false });
}
},
{
text: ‘Primary Contact’, columntype: ‘checkbox’, datafield: ‘isprimarycontact’, width: 105,editable:_isPrimaryEditable, cellsalign: ‘right’,createeditor: function (row, value, editor) {
editor.jqxCheckBox({ theme: theme, width: 16, height: 16, animationShowDelay: 0, animationHideDelay: 0 });
editor.on(‘checkChange’, function (event) {
CopyDetails(event.args);
});
}
},
{ text: ‘Is Occupant’, columntype: ‘checkbox’, datafield: ‘isOccupant’, width: 105, cellsalign: ‘right’ },
{
text: ‘Gender’, columntype: ‘dropdownlist’, displayfield: ‘gender’, datafield: ‘gender_id’, width: 124, cellsrenderer: cellsrenderer,
createeditor: function (row, value, editor) {
editor.jqxDropDownList({ source: _GenderDataAdapter, displayMember: ‘gender’, valueMember: ‘gender_id’ });
// Modified from ‘click’ to ‘open’ by Abijeet on 17th October, 11:37 AM, to open the dropdown list on single click..
editor.on(‘open’, function (event) {
$(“#listBoxdropdownlisteditorRelativeJqxGridgender_id”).css(‘z-index’, ‘9999’);
});
editor.on(‘select’, function (event) {
// Written by Abijeet on 17th October, 11:37 AM, to open the dropdown list on single click..
$(this).jqxDropDownList(‘open’);
var args = event.args;
if (args) {
var item = args.item;
if (item != null) {
selGenderId = item.value;
}
}
});`
editor.on(‘checkChange’, function (event) {
CopyDetails(event.args);
});}
}
]
});
}
$(“#RelativePopUp”).dialog(“open”);
}
}
function InitRelativePopup() {
$(“#RelativePopUp”).dialog({
autoOpen: false,
width: 700,
height: 300,
modal: true,
resizable: false,
open: function (event, ui) {
$(‘.ui-icon’).css(‘position’, ‘absolute’);
$(‘.ui-icon’).css(‘top’, ‘-2px’);
$(‘.ui-icon’).css(‘left’, ‘-3px’);
},
close: function (event, ui) {
$(‘#RelativeJqxGrid’).jqxGrid(‘refreshdata’);
}
});
}
/**********
#endregion
**********/
function CopyDetails(dtls) {
var args = NullCheck(dtls);
if (args != ”) {
relColumnDataField = NullCheck(args.datafield);
relRowIndex = NullCheck(args.rowindex);
relCellValue = NullCheck(args.value);
relOldValue = NullCheck(args.oldvalue);
if (relColumnDataField == ‘isOccupant’ ||relColumnDataField == ‘isprimarycontact’ ) {
if (relCellValue == true) {
relCellValue = false;
relOldValue = true;
}
else if (relCellValue == false) {
relCellValue = true;
relOldValue = false;
}
else
relCellValue = relCellValue;
}
}
}
/*****************************************************************
#region Method is used for generating the datafield object of jqxgrid.
*****************************************************************/
function CreateDataField(varName, varType) {
return { name: varName, type: varType }
}
/**********
#endregion
**********/
/*****************************************************************
//#region Functions used for showing relative dialog box- Start
*****************************************************************/
function CloseRelativePopup() {
setValue();
varIsPrimaryContact = true;
InitRelativePopup();
$(“#RelativePopUp”).dialog(“close”);
FetchData(“”, “”, ‘?Data_RC=SaveRelativesDtls’, ”, true);
if (typeof (UpdatePrimaryContact) != ‘undefined’) {
UpdatePrimaryContact();
}
return false;}
/**********
#endregion
**********/
function SetDefaultValues() {
if (typeof CloseNewReferralPopup != ‘undefined’ && jQuery.isFunction(CloseNewReferralPopup) == true) {
CloseNewReferralPopup();
}
}var _ibtnAddRelatives = ‘<%=ibtnAddRelatives.ClientID%>’;
</script>
<asp:HiddenField ID=”hdnNoOfRows” runat=”server” />
<!– Relation Popup related javascripts – End –>
<asp:ImageButton ID=”ibtnAddRelatives” runat=”server” SkinID=”AddRelative”
OnClientClick=”return ShowRelativeDialogBox();” Enabled=”false” style=”width:60px;” /><div id=”RelativePopUp” style=”display: none; overflow: hidden;” title=”Related Contacts”>
<asp:Panel ID=”pnlBodyGuestContact1″ runat=”server” CssClass=”body” Style=”margin: 0px”>
<asp:ImageButton ID=”ibtnAddChildren” runat=”server” CausesValidation=”false” SkinID=”AddButton”
OnClientClick=”AddNewRow();” />
<div id=’RelativeJqxGrid’></div>
<div>
<div id=”cellbegineditevent”>
</div>
<div id=”cellendeditevent”>
</div>
</div>
</asp:Panel>
<div class=”footer” style=”width: 98%”>
<asp:ImageButton ID=”btnJQAddrelatives” SkinID=”OkButton” runat=”server” OnClientClick=” return CloseRelativePopup();”
CausesValidation=”false” style=”width:62px;” />
</div>
</div>
`