1

CF9 を使用し、SQL クエリから結果を返す非常に基本的な html cfgrid を用意します。

グリッドには、「ID」と「IDType」の 2 つの列しかありません。

特定の IDType が表示されたときに、ID フィールドの値がハイパーリンクのキー値になるように、何らかのロジックを実装する方法があるかどうかを調べています。

例: IF IDType = "web" で ID が "1234" の場合、ID フィールド内の値は http://www.website.com/1234.html として表示されます (または...より良い: 単に次のように表示されます)。 「1234」ですが、前述のサイトに移動するにはハイパーリンクを有効にしてください。)

IDType が (たとえば) "web" でない場合、値は通常のセル値 (テキスト) として表示されます。

                   <cfgrid
                        name="idGrid"
                        title="Related IDs"
                        query="get_IDs"
                        format="html"
                    >
                        <cfgridcolumn name="ID" header="ID" />
                        <cfgridcolumn name="IDType" header="ID Source" />

                    </cfgrid>
4

2 に答える 2

0

JavaScriptのonRender関数でそれを行うことができます。

var gridRender = function()
{
var grid = ColdFusion.Grid.getGridObject('gridname');
var cm = grid.getColumnModel();
cm.setRenderer(0,renderFun); //first arguments stands for column number
}

var renderFun = function(value, cellMeta, record, row, col, data)
{
if(value != null)
{
    switch(col)
    {
        case 0:
            return "<a href='yoururl?id=" & value & "'>" & value & "</a>";      
        default:
            return value;
    }

}
};

そしてcoldfusionページでajaxonloadのgridRender関数を呼び出します

<cfset ajaxOnLoad("gridRender")>

ajaxOnLoad は、読み込まれたページで gridRender js 関数を自動的に呼び出し、gridRender 関数を介してレンダリングするようにグリッドを設定します。renderFun は、列セルがレンダリングされるたびに呼び出されます。

注:コードをテストしていないので、テストコードと見なして、必要に応じて変更してください。

于 2011-07-15T06:15:47.340 に答える
0

これを行う 1 つの方法は、queryColumnAdd() 関数を使用して列を生成してクエリに追加し、セルにリンクを配置してから、変更したクエリを cfgrid にプッシュすることです。

リンクがレンダリングされ、クリックできるようになります。

疑似コードを作成できる場合..最初に通常のクエリを記述します

<cfquery name = "myQuery"  datasource = "myCFDatasource">
   SELECT ID, field1, field2, field3
   FROM aTable
</cfquery>

次に、リンク列を追加します..

<cfset queryAddColumn(myQuery, "Link", ArrayNew(1)) />

<cfloop query="myQuery">
    <cfset querySetCell(myQuery, "Link", "http://www.mysite.com/some/index.cfm?ID=#myQuery.ID#"), myQuery.currentRow) />
</cfloop>

次に、変更したクエリ myQuery を取得して、上記のように cfgrid に送信できます。

あなたが正しい道を歩むのに役立つことを願っています..、前回使用したときはうまくいきました!

于 2011-07-14T19:41:41.067 に答える