1

我们刚刚开始使用 Sigma Grid,与其他 Grid 相比,它的功能非常棒。

但是我遇到了 Sigma Grid 的一些问题,或者可能是 javascript。我不知道问题出在 Grid 上还是我的代码上。

我有一个包含 3 个字段的表,即 MailID、MailName、MailData。

MailID 是 int ,MailName 和 MailData 包含 HTML 内容,并在数据库中保存为字符串。

当我加载网格时,我遇到了一些问题。

问题1:


正如我上面所说的 Maildata 包含 html 内容,下图只是 <*b> 的示例,您可以看到 HTML 自动在网格本身上呈现,我需要确切的字符串。

请检查下图。

问题2:


如您所见,我在网格上有链接,可用于编辑、发送、删除,但其中一个已损坏。[查看下图]

我用来呈现链接的代码如下。

{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 的第三个值是 5,它是整数,当我警告它的值时,它会正确显示。检查下图。 http://i51.tinypic.com/2uqivyv.png

但是当我警告 maildata 的第二个值它给出错误时,MailData 的第二个值是“hai newuser”,它在 firebug 上显示以下错误。

missing ) after argument list
 alert(hai newuser)

检查下面的图像。

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

但是当我警告 MailData 的第 9 个值时,它运行正确,内容是 < b>poy< /b>,这个也保存为字符串,但网格自动加粗[我不喜欢]。检查下图。 http://i53.tinypic.com/10fceb4.png

还有一些其他的 7 值包含 ;".: 等,还有 /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 有点陌生,我认为我在代码方面做得最糟糕,请帮助我取得成功。

谢谢你。

注意:我也在 Sigma Grid 论坛上发布了同样的问题,我认为这不是问题。

4

1 回答 1

2

问题 2

该字符串cod包含一个>

问题 3

字符串hai newuser需要包含在"或被'视为变量名

基本上你必须决定——你是否要验证 html。如果您不验证 HTML,则数据中的 html 错误将在您的页面上显示为错误。您还可以对 html 进行 HTML 转义,以便看到 HTML 代码——这可能是最好的计划。

其他网站使用(像这个)使用降价 - 这更容易验证 - 然后它们在显示之前生成实际的 HTML。

此外,您还遇到了警报问题。警报显示字符串而不是 HTML,因此您将看到您所看到的 - 根据 HTML,结果与预期不同。


我会退后一步问问自己——数据的类型是什么,我将如何显示它。我将如何验证它是否是 HTML 是否有效。

你需要解决一些问题——你的例子都源于这个问题。

于 2011-08-29T14:08:38.617 回答