1

在我的项目中,我正在检查一些条件,如果为真,则该操作将发生,否则错误消息将在运行时显示在标签中。

我的问题是,当条件失败时,光标会转到 else 块,并且代码也会被执行,但标签的文本没有改变。可能是什么问题?

条件部分是,

    if (ds.Tables[0].Rows.Count > 0 
                && DateTime.Parse(frmtxtdt.Text).ToString("dd/MM/yyyy") == DateTime.Today.ToShortDateString() 
                && DateTime.Parse(totxtdt.Text).ToString("dd/MM/yyyy")  == DateTime.Today.ToShortDateString())
            {
                ds.Tables[0].TableName = "Passkeys";

                ds.WriteXml(Server.MapPath("~/XMLReports/_Passkeys.xml"));
                string filename = Server.MapPath("~/Upload/Pkey_rpt.rpt");
                rpt.Load(filename);
                rpt.SetDataSource(ds);
                rpt.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, true, "Passkeys");

            }
            else if(frmtxtdt.Text.Trim() !=null && totxtdt.Text.Trim()!=null)
            {
                if (DateTime.Parse(frmtxtdt.Text).ToString("dd/MM/yyyy")   == DateTime.Today.ToShortDateString() 
                     && DateTime.Parse(totxtdt.Text).ToString("dd/MM/yyyy") == DateTime.Today.ToShortDateString() 
                     && ds.Tables[0].Rows.Count == 0)
                {

                    lblmsg.Text = "Pass Key Not Yet Delivered for the Selected Date...";
                    //The value(lblmsg.Text) not Changing when comes here.
                }
                else
                {

                    lblmsg.Text = "There is No Schedule for the Selected date....";
                    //The value(lblmsg.Text) not Changing when comes here.

                }

            }

        }
        catch
        {
            throw;
        }

朋友我的问题不在于 [Datetime] 或 [Datetime Picker],而是标签的文本在运行时正在更改,但没有显示。

并且还在 [rpt.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, true, "Passkeys"); ] PDF 文件格式的 Crystal Report Generator 报告正在加载,XML 文件中也有数据,但未转换为 PDF 文件以供下载。

4

4 回答 4

1

错误的上下文是什么,Web 还是桌面?替代方案可能是:

  • 如果您使用任何组件进行 AJAX 调用,则此标签不在发送到服务器的内容中,并且不会更新。(仅限网络)
  • 您可能会遇到一些清除此标签值的事件(回发)(仅限 Web)
  • 检查标签的可见属性,它可能在代码的某些部分被更改
  • 确保标签的颜色与屏幕背景的颜色不同,相信它会发生。
  • 任何组件都与此标签重叠,或者该标签是表单外的位置/位置
于 2013-06-10T11:40:02.033 回答
0

发生这种情况是因为 UI 线程加载过多

lblmsg.Refresh();设置文本后添加

如果它不起作用,则将该方法移至后台线程;不过要小心交叉线程。对于简单的线程间操作,您可以使用 BackgroundWorker 类的 ReportProgress 方法

于 2013-06-10T11:25:22.803 回答
0

我可能会假设您有一些观察者与更改标签文本字段的值相关联,因此当在此处理程序中更改标签代码块中的文本时失败(或工作正常,但不假设更改标签文本的实际值) ,更新文本失败。

于 2013-06-10T11:28:49.607 回答
0

此外,如果您不知道有一些非常方便的控件,称为“DateTimePicker”,它们是专门为选择日期而创建的。你应该试一试。

我想知道您是否在更改之前的某个地方遇到了异常?

于 2013-06-10T10:59:59.987 回答