ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

c# – LocalReport方法呈现的线程文化

2019-05-26 21:54:04  阅读:231  来源: 互联网

标签:c reporting-services


我正在将一个localreport对象用于asp.net应用程序.
此报告由一组对象提供.因此,在报告的呈现中,会调用classe的一些属性.

Class ClassForReport
{
  string Date
  {
    get{return _aDate.ToshortDateString();}
  }
}

现在渲染的代码和问题:

//first of all, I change de culture for taking in account the choice of the user
CultureInfo ci = CultureInfo.CreateSpecificCulture(isoLanguageName_);
Thread.CurrentThread.CurrentCulture = ci;
Thread.CurrentThread.CurrentUICulture = ci; 
//Here, my culture is now: FR-be

MyLocalReport.render(...) // in this method, the property Date above is called. And when debugging I see that the culture is EN !!!

...
//and here, my culture is still Fr-be

因此,当调用方法render时,它会启动一个线程并获取服务器的文化,而不是进程的文化.

我看到的唯一的工作方式是将我的报告更改为包含日期,然后提供文化参数,并在我的所有报告中将所有日期格式化为给定的文化…

所以我真的希望有一种方法可以告诉报告采取asp线程的复制文化,而不是采取其他一些文化来自无处.

thx提前

解决方法:

在ReportFile的“.rdlc”Designer中,在“语言中的报表”属性“=用户!语言”中设置.

<Report>
  ... 
  <Language>=User!Language</Language>
  ...
</Report>

那么你的System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(“de-DE”);
将处理report.Render(…)中的值;喜欢约会等.

干杯.

标签:c,reporting-services
来源: https://codeday.me/bug/20190526/1158583.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有