CF Upgrade Issue при привязке выпадающего значения к привязке в cfgrid - PullRequest
0 голосов
/ 09 февраля 2019

Мы обновляем наш 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

...