1

Sigma Grid を使い始めたばかりですが、他のグリッドと比較すると、その機能は素晴らしいものです。

しかし、Sigma Grid で問題が発生したか、javascript で問題が発生した可能性があります。問題がグリッドにあるのか、コードにあるのかわかりません。

MailID、MailName、MailData という 3 つのフィールドを持つテーブルがあります。

MailID は int 、MailName であり、MailData には HTML コンテンツが含まれており、データベースに文字列として保存されます。

グリッドをロードすると、いくつかの問題が発生します。

問題 1 :


上で述べたように、Maildata には html コンテンツが含まれています。次の画像は <*b> を使用した例にすぎません。HTML がグリッド自体に自動的にレンダリングされていることがわかります。正確な文字列が必要です。

次の画像を確認してください。

問題 2 :


ご覧のとおり、グリッド上に編集、送信、削除用のリンクがありますが、1 つのファイルが破損しています。[下の画像を確認してください]

リンクをレンダリングするために使用したコードは次のとおりです。

{id: 'mailid' ,  header: "Action", width :120 , resizable : false, sortable : false , printable : false ,
        renderer : function(value ,record,columnObj,grid,colNo,rowNo){
                var no= record[columnObj.fieldIndex];
                var cod =  (record['maildata']);
                return '<a href=\"#\" class=\"myli\" onClick="showalert('+no+');">Edit</a> | <a href=\"#\" onClick=\"alert('+cod+')\";>Send</a> | <a href=\"#\">Delete</a>';

http://i52.tinypic.com/f02c01.png

問題 3 :


MailData の 3 番目の値は 5 で、整数です。値を警告すると、正しく表示されます。次の画像を確認してください。 http://i51.tinypic.com/2uqivyv.png

しかし、maildata の 2 番目の値を警告すると、エラーが発生し、MailData の 2 番目の値は "hai newuser" になり、firebug で次のエラーが表示されます。

missing ) after argument list
 alert(hai newuser)

下の画像を確認してください。

http://i54.tinypic.com/2dc7h8k.png

しかし、MailData の 9 番目の値を警告すると、正しく実行されます。内容は < b>poy< /b> で、これも文字列として保存されますが、グリッドは自動的に BOLD [好きではない] です。下の画像を確認してください。 http://i53.tinypic.com/10fceb4.png

また、値に ;".: など、/b が含まれているものもあります。データにアラートを出すと、次のエラーが表示されます。

unexpected end of XML source
 alert(<b>jjfdslkdjflsdnfsldfnf

dsOptions と ColOptions は次のとおりです。

var dsOption= {

    fields :[
        {name : 'mailid'  },
        {name : 'mailname',type:"text"  },
        {name : 'maildata',type:"text"  }






    ],

    recordType : 'object',


}


    function my_renderer(value ,record,columnObj,grid,colNo,rowNo)
    {
        var no= record[columnObj.fieldIndex];
        return "<img src=\"./images/flag_" + no.toLowerCase() + ".gif\">";
        }
        function showalert(no)
        {
        $(document).ready(function()
        {



        $.post("http://localhost/power/index.php/power/give",{ name: no}, function(data)
            {
            //alert("Data Loaded: " + data);
            $("#editor").show("fast");
            $( '#txtar' ).ckeditor();
            $('#txtar' ).val( data.maildata );
            //$("#editor").html(data);
            },"json"
         );

        });
        }



var colsOption = [
     {id: 'mailid' , header: "Mail ID" , width :60},
     {id: 'mailname' , header: "Mail Name" , width :160 ,type:"text"},
       {id: 'maildata' , header: "Mail Data" , width :190,type:"text" },
        {header: "Group" , width :70,
     editor : { type :"select" ,options : {'php':'php','asp':'asp'} 
     ,defaultText : 'php' }  },


       {id: 'mailid' ,  header: "Action", width :120 , resizable : false, sortable : false , printable : false ,
        renderer : function(value ,record,columnObj,grid,colNo,rowNo){
                var no= record[columnObj.fieldIndex];
                var cod =  (record['maildata']);
                return '<a href=\"#\" class=\"myli\" onClick="showalert('+no+');">Edit</a> | <a href=\"#\" onClick=\"alert('+cod+')\";>Send</a> | <a href=\"#\">Delete</a>';
            }  } 
];

私は Javascript と Sigmagrid に少し慣れていませんが、コードで最悪のことをしていると思います。pls は私が成功するのを助けてくれます。

ありがとうございました。

注:Sigma Grid Forumにも同じ質問を投稿しましたが、問題はないと思います。

4

1 に答える 1

2

問題 2

文字列codには>

問題 3

文字列hai newuserが含まれている必要がある"または'または 変数名と見なされる

基本的に、HTML を検証するかどうかを決定する必要があります。HTML を検証しないと、データ内の HTML エラーがページにエラーとして表示されます。html を HTML エスケープすることもできるので、HTML コードが表示されます。これがおそらく最良の方法です。

他のサイトでは (このような) マークダウンを使用しています (これは検証が簡単です)。その後、表示前に実際の HTML を生成します。

さらに、アラートに問題があります。Alert は HTML ではなく文字列を表示するので、HTML によっては予想とは異なる結果が表示されていることがわかります。


一歩下がって、データのタイプは何か、どのように表示するかを自問します。HTML である場合に有効であることをどのように検証しますか。

対処する必要がある問題があります-あなたの例はすべてこの問題から生じています。

于 2011-08-29T14:08:38.617 に答える