找回密码
 立即注册

QQ登录

只需一步,快速开始

slytyyj

高级会员

10

主题

58

帖子

1168

积分

高级会员

积分
1168

活字格认证

slytyyj
高级会员   /  发表于:2011-8-10 11:10  /   查看:9981  /  回复:17
您好:
我现在遇到这样一个问题,想在AR设计界面上添加一个TEXTBOX,设置该控件的hyperlink的属性。当用户在前台单击报表中的该控件时,可以跳转到指定页面,获取传递的参数。
目前,传递参数除了问题,参数中存在汉字时,出现?形式。我想用 Server.UrlEncode来编码,但是在AR的代码页中不识别。
我的代码是:
public partial class ArSycg : DataDynamics.ActiveReports.ActiveReport
    {

        public DataTable dtt = new DataTable();
        public ArSycg()
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();
        }

        public ArSycg(DataTable dt)
        {
......
this.tbSydzzj.HyperLink = "/JxsyWeb/Query/QueryDownloadBlob.aspx?param=" + papaM;
.......
}
其中的paraM串中的汉字丢失或者乱码。通常paraM 串的形式如下:200708,滨123,13.34,23456.7,试油一队
诚盼回复,谢谢

17 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2011-8-10 11:50:00
沙发
您好,我做了一个简单的Demo测试了以下,我在跳转的目标页面能够得到正确的汉字。
在执行this.tbSydzzj.HyperLink = "/JxsyWeb/Query/QueryDownloadBlob.aspx?param=" + papaM;时papaM的值是否正确,还是说在调整的目标页面中得到的是乱码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
slytyyj
高级会员   /  发表于:2011-8-10 15:19:00
板凳
您好,我看了您给的MEMO,和我写的是一样的。我出现乱码是在目标页面中。就是        
param =Request.QueryString[0];
这句话中
param变量原始值为:中国
在目标也中param变量接收到的值为:??
回复 使用道具 举报
slytyyj
高级会员   /  发表于:2011-8-10 15:22:00
地板


就是在这个图片中,单击“下载”超链,然后跳转到目标页面,在目标页面中出现了乱码。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2011-8-10 15:38:00
5#
使用我发的例子,当鼠标停放在【HyperLinkTest】上时,浏览器中能够显示正确的链接地址和参数,不知道你在这个操作时汉字是否能够正确显示

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
slytyyj
高级会员   /  发表于:2011-8-10 15:52:00
6#
您好,就是您标注的链接中,中国一词为??,我找不到原因
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2011-8-10 16:30:00
7#
可以在我的例子的Default.aspx页面中添加以下代码试一下,设置当前页面的字符集为utf-8或者gb312:

<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <%--<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />--%>
</head>
回复 使用道具 举报
slytyyj
高级会员   /  发表于:2011-8-10 17:35:00
8#
您好,我现在还有个问题,就是我在 private void ArSycg_ReportStart(object sender, EventArgs e)
        {
            for (int i = 0; i &lt; dtt.Rows.Count; i++)
            {
                TextBox txtdata = new DataDynamics.ActiveReports.TextBox();
                txtdata.Name = i.ToString();
                txtdata.HyperLink = dtt.Rows[&quot;down&quot;].ToString();
                txtdata.Text = &quot;下载&quot;;
                //lb.Location.X = 12.59f;
                //lb.Location.Y = 0.07f + i * 0.2f;
                this.detail.Controls.Add(txtdata);
            }
        }中想动态增加一列文本框,该文本框中的超链接分别设置为数据源中的某列值,但是运行出来后,发现,每个文本框的超链接都为最后一个记录的某列值,而且,页面中加上了您提供的GB2312代码,没有起作用。
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2011-8-10 18:01:00
9#
请参考下面代码:

  1.         private void ArSycg_ReportStart(object sender, EventArgs e)
  2.         {
  3.             TextBox txtdata = new DataDynamics.ActiveReports.TextBox();
  4.             txtdata.Name = &quot;XXXX&quot;;
  5.             txtdata.Text = &quot;下载&quot;;
  6.             this.detail.Controls.Add(txtdata);
  7.         }

  8.         private void detail_Format(object sender, EventArgs e)
  9.         {
  10.             (this.detail.Controls[&quot;XXXX&quot;] as TextBox).HyperLink = this.Fields[&quot;down&quot;].Value.ToString();
  11.         }
复制代码
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2011-8-10 18:06:00
10#
你在运行代码之后,查看IE浏览器中当前页面默认的字符编码是什么,同时你把这个网页保存之后发给我看一看

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部