zoukankan      html  css  js  c++  java
  • 解决infragistics的webgrid嵌套子表列名在ajax下(xml paging)出现的乱码问题

    webgrid的嵌套子表的功能很强,但我用了xml paging功能时,发现问题:
    当子表的列名(Header.Caption)为中文时,展开子表就会出现乱码.而不用xml paging展开子表就没有问题.我郁闷了一上午,最后终于找到了解决的办法(详细过程省略了,反正很痛苦)
    原因:当用xml paging方式时,webgrid展开子表的过程,其实就是一次无刷新的操作,而原本设置的列名被post后,出现了乱码,我找到了它的ig_WebGrid_dom脚本:
    this.XmlHttp.open("POST"this.Url, false);
    this.XmlHttp.setRequestHeader("Content-Type""application/x-www-form-urlencoded");
    this.XmlHttp.onreadystatechange=new Function("igtbl_onReadyStateChange('"+this.Id+"')");
    this.XmlHttp.send("__EVENTTARGET="+this.UniqueID+"&__EVENTARGUMENT=XmlHttpRequest&"+this.UniqueID+"="+igtbl_escape(this.QueryString));
    只看出是igtbl_escape()方式,应该和javascript的escape作用差不多,所以直接修改它的脚本好像并不能解决.
       后来我想,既然是用xmlhttprequest来完成子表的展开,那用客户端的AfterXmlHttpResponseProcessed事件应该可以重新给子表的列赋值了(infragistics自己的控件ClientSideEvents).
    添加的客户端事件代码:
    function UltraWebGrid1_AfterXmlHttpResponseProcessed(gridName){
                var col0 
    =igtbl_getElementById("UltraWebGrid1c_1_0");
                
    if(col0!=null)
                col0.innerText 
    = "接受者";
                var col1 
    = igtbl_getElementById("UltraWebGrid1c_1_1");
                
    if(col1!=null)
                col1.innerText 
    = "状态";
                var col3 
    = igtbl_getElementById("UltraWebGrid1c_1_3");
                
    if(col3!=null)
                col3.innerText 
    = "回复时间";
                var col4 
    = igtbl_getElementById("UltraWebGrid1c_1_4");
                
    if(col4!=null)
                col4.innerText 
    = "回复内容";
            }
    UltraWebGrid1c_1_0的意思是取子表的第1列的列名,方式如下:
    列的命名方式: "表格名"+"C_" +"Band的序号" + "_" +"列序号"
    如UltraWebGrid1c_1_0 的表格名=UltraWebGrid1,Band的序号=1,列序号=0
    这样当展开时,列名就会重新写上去,这样就不会出现乱码了.
    注:我用的是2005V3版本,不知道刚刚发布的06V3的版本会不会考虑到这个情况.
  • 相关阅读:
    第二次博客作业
    C博客作业00--我的第一篇博客
    第1次任务:购物车程序的面向对象设计
    DS博客作业05--查找
    DS博客作业04--图
    DS博客作业03--树
    DS博客作业02--栈和队列
    C博客作业05-指针
    C博客作业04--数组
    C博客作业03--函数
  • 原文地址:https://www.cnblogs.com/zjy/p/562717.html
Copyright © 2011-2022 走看看