12

我正在集成 SSRS 报告(在 VS 2008 vs. 9.0 中开发),当我使用 Chrome 将其加载到浏览器中时,我得到了这个:

在此处输入图像描述

没有日期图标!

在 Opera 中显示,但不起作用:

在此处输入图像描述

我如何弄清楚如何 1.) 让它正常工作。2) 使其在 Chrome 中可见

我找到了一个谈论它的网站(这里),但它只有一个死链接(http://www.rajbandi.net/

只是我还是这是一个需要解决的复杂问题?任何提示表示赞赏

4

4 回答 4

3

也许这篇文章对你有帮助? http://www.codeproject.com/Articles/504567/Print-button-Date-picker-in-SSRS-Reports-for-Non-I

于 2013-02-13T20:46:48.040 回答
1

在撰写本文时,可以访问所谓的死链接(rajbandi.net);如果链接再次断开,我将其内容放在这里以供使用:


在 Google chrome 中修复 SSRS 报告查看器控制日期选择器
作者:Raj Bandi
2012 年 4 月 3 日
https://rajbandi.net/2012/04/03/fixing-ssrs-report-viewer-control-date-picker-in-google-铬合金/

SSRS Report Viewer 控件在 IE6+ 中运行良好,但在日期选择器和打印按钮周围存在与其他主要浏览器(Firefox、Chrome 等)的一些已知兼容性问题。

有关更多信息,请阅读此

http://msdn.microsoft.com/en-us/library/ms251673.aspx

我提出了一个简单的解决方案,结合一些服务器端代码和客户端 JQuery 脚本来修复 Chrome 中的日期选择器问题。

服务器端代码

1)在reportviewer控件所在的页面/控件文件中添加以下代码

<asp:HiddenField ID="DatePickers" runat="server" />

2)在reportviewer控件所在的页面/控件的代码隐藏文件中添加以下代码(.Net 2.0版本)

protected override void OnPreRender(EventArgs e)
{
    base.OnPreRender(e);
    DatePickers.Value = string.Join(",",(new List(GetDateParameters()).ToArray()));
}
private IEnumerable GetDateParameters()
{
    // I'm assuming report view control id as reportViewer
    foreach (ReportParameterInfo info in reportViewer.ServerReport.GetParameters())
    {
        if (info.DataType == ParameterDataType.DateTime)
        {
            yield return string.Format("[{0}]",info.Prompt);
        }
    }
}

客户端代码

1)在html head部分添加以下脚本

$(document).ready(function(){
    if ($.browser.webkit)
    {
        $($(":hidden[id*='DatePickers']").val().split(",")).each(function(i, item) {
            var h = $("table[id*='ParametersGrid'] span").filter(function(i) {
            var v = "[" + $(this).text() + "]";
            return (v != null && v.indexOf(item) >= 0);
        })
        .parent("td").next("td").find("input")
            .datepicker({
                showOn: "button",
                buttonImage: '/Reserved.ReportViewerWebControl.axd?OpType=Resource&Name=Microsoft.Reporting.WebForms.calendar.gif',
                buttonImageOnly: true,
                dateFormat: 'dd/mm/yy',
                changeMonth: true,
                changeYear: true
            });
        });
    }
});
于 2018-11-15T11:18:25.023 回答
0

至少在 Chrome 中,一个选项可能只是显示不包括时间的日期。这对最终用户来说更有意义。

//Update the dates
$(document).ready(function () {
    $('input[type=text]').each(function () {
        $(this).val($(this).val().replace('12:00:00 AM', ''));
    })
});
于 2016-04-19T18:28:08.563 回答
0

删除当前帐户/人员并在 chrome 上添加新帐户/人员对我有用。

于 2018-10-31T04:27:08.333 回答