Мы обновляем наш CF Server 9 до последней версии CF 2018. И я сталкиваюсь с проблемой привязки между выпадающим выбранным значением и привязкой cfgrid.
Существует раскрывающееся меню чуть выше cfgrid, которое сначала пусто и имеетзначения, перечисленные в запросе, и чуть ниже - сетка, которая связывает выбранное значение с выбранным запросом.
Сначала при выборе пустого он не будет извлекать записи, а сетка будет пустой.Кроме того, URL-адрес привязки сформирован правильно.
http://127.0.0.1:8501/app/dummy.cfm?&DbFunc=getRecords&SrcID=&newSrcID=&flt_nm=&flt_iv=&flt_ct=&flt_sc=&flt_in=&pageSize=174&_cf_ajaxproxytoken=6D89B1BFAE8D17997E5A&_cf_clientid=1AFC4F973849FBAE6EAAA465492A0E0B&_cf_rc=0&_cf_nodebug=true&_cf_nocache=true&returnFormat=json&_dc=1549690631545&start=0&limit=174&page=1&sortCol=&sortDir=ASC
Но затем, когда я выбираю раскрывающийся список с новым значением, URL-адрес формируется следующим образом.
http://127.0.0.1:8501/app/dummy.cfm?&&DbFunc=getRecords&SrcID=Test&SrcID=&&newSrcID=Test&&flt_nm=&&flt_iv=&&flt_ct=&&flt_sc=&&flt_in=&pageSize=174&_cf_ajaxproxytoken=6D89B1BFAE8D17997E5A&_cf_clientid=1AFC4F973849FBAE6EAAA465492A0E0B&_cf_rc=0&_cf_nodebug=true&_cf_nocache=true&returnFormat=json&_dc=1549690634739&start=0&limit=174&page=1&sortCol=&sortDir=ASC
Как видите, SrcID добавляется дважды для первого пустого и следующего добавления выбранного значения.На следующей странице я получаю это значение через запятую, что неверно.параметры запроса добавляются как отдельные, а не перезаписывают старые параметры.
Параметр SrcID определяется в верхней части, а следующий - в раскрывающемся списке, а непосредственно в нижней части - в cfgrid, где он используется в связывании.Заранее спасибо
Вот пример кода ниже
<cfajaximport tags="cfform, cfinput-datefield, cftooltip, cfwindow, cfgrid, cfmessagebox">
<script type="text/javascript" language="javascript">
function doRefresh(form){
cSrcID = form.SrcID.options[form.SrcID.selectedIndex].value;
console.log('me'+cSrcID+'u');
cSortFld = '';
form.newSrcID.value = cSrcID;
}
// get client area of the browser
var cliWt = getClientWt(); // client width
var cliHt = getClientHt(); // client height
// set grid dimensions scrWidth, scrHeidht
var gWt = 34; // right margin
var gHt = 180; // top margin
var minWt = 500; // min width of the table
var minHt = 280; // min height of the table
var scrWidth = cliWt - gWt;
var scrHeight = cliHt - gHt;
if (scrWidth < minWt) scrWidth = minWt;
if (scrHeight < minHt) scrHeight = minHt;
// set winEdit popup window dimensions
var popwinWt = 1150;
var popwinHt = 680;
var bResizePopup = 0;
if (popwinWt > cliWt) {
bResizePopup = 1;
popwinWt = cliWt - 10;
}
if (popwinHt > cliHt) {
bResizePopup = 1;
popwinHt = cliHt - 10;
}
// set winEdit2 popup window dimensions
var popwinWt2 = 900;
var popwinHt2 = 510;
var bResizePopup2 = 0;
if (popwinWt2 > cliWt) {
bResizePopup2 = 1;
popwinWt2 = cliWt - 10;
}
if (popwinHt2 > cliHt) {
bResizePopup2 = 1;
popwinHt2 = cliHt - 10;
}
// set winEdit3 popup window dimensions
var popwinWt3 = 800;
var popwinHt3 = 550;
var bResizePopup3 = 0;
if (popwinWt3 > cliWt) {
bResizePopup3 = 1;
popwinWt3 = cliWt - 10;
}
if (popwinHt3 > cliHt) {
bResizePopup3 = 1;
popwinHt3 = cliHt - 10;
}
</script>
<cfset maxRowCnt = 174>
<!--- Set Grid default params --->
<cfparam name="page" default="1">
<cfparam name="pageSize" default="#maxRowCnt#">
<cfparam name="cfgridsortcolumn" default="">
<cfparam name="cfgridsortdirection" default="">
<cfform name="mainForm">
<cfoutput>
<br /><cfselect name="SrcID" title="Select a Source" style="width:200px;" onchange="doRefresh(this.form)">
<option value="">Select a Data Source</option>
<option value="Test">Test</option>
</cfselect>
<input type="hidden" name="newSrcID" value="">
<input type="hidden" name="flt_nm" value="" />
<input type="hidden" name="flt_iv" value="" />
<input type="hidden" name="flt_ct" value="" />
<input type="hidden" name="flt_sc" value="" />
<input type="hidden" name="flt_in" value="" />
</cfoutput>
<!--- Main Grid title="List of Records" --->
<cfgrid format="html" name="mainGrid" sort="yes" style="border:1px solid ##002D96;" visible="no" pagesize="#maxRowCnt#" maxrows="#maxRowCnt#" vspace="20"
striperows="yes" striperowcolor="#gcGray#" bgcolor="#gcRowWhite#" colheaderbold="yes" colheadertextcolor="##464646" width="scrWidth" height="scrHeight"
selectcolor="##FFCC99" selectmode="edit" selectonload="false" picturebar="yes" gridlines="yes" autowidth="yes"
bind="url:dummy.cfm?DbFunc=getRecords&SrcID={SrcID}&newSrcID={newSrcID}&flt_nm={flt_nm}&flt_iv={flt_iv}&flt_ct={flt_ct}&flt_sc={flt_sc}&flt_in={flt_in}&page={cfgridpage}&pageSize={cfgridpagesize}&sortCol={cfgridsortcolumn}&sortDir={cfgridsortdirection}"
onchange="url:dummy.cfm?DbFunc=doNothing&action={cfgridaction}&row={cfgridrow}&changed={cfgridchanged}"
font="arial" fontsize="14px" colheaderfont="arial" colheaderfontsize="14px" textcolor="##464646">
<cfgridcolumn name="si_id" header="ID" display="yes" select="no" width="45"/> <!--- FDB-164 --->
</cfgrid>
</cfform>
На dummy.cfm
возвращает данные запроса в формате JSON на основе выбранного Src Id