ASP.Net Control Visible =虚假随机数据问题

时间:2011-03-28 16:11:31

标签: asp.net security controls

是否有人知道将控件的Visible属性设置为false导致值更改的问题?

在下面的代码中,行:

control.Visible = dr.ParmDisplay;

在某些服务器上,如果控件不可见,则不会保存刚刚设置的值。我们有一个测试服务器,这个代码工作正常,但我们有一个客户,价值没有保存。如果控件 可见,它会在任何服务器上保存/显示/存储该值。

是否有一些安全补丁改变了它的工作原理???我已经谷歌了,我没有发现任何与可见属性有关的事情。

以下是此过程的完整代码:

protected void LoadReport()
    {

        dsReport.ReportParametersDataTable dt = objLoadXml.GetReportParameters(objReport.ReportName);
        foreach (dsReport.ReportParametersRow dr in dt.Rows)
        {
            Control control = null;
            IParm parameterControl = null;
            if (dr.ParmType.ToUpper().StartsWith("DATERANGE"))
            {
                control = LoadControl("./UserControls/DateRange.ascx");

            }
            else if (dr.ParmType.ToUpper().StartsWith("DATE"))
            {
                control = LoadControl("./UserControls/Date.ascx");

            }
            else
            {
                control = LoadControl("./UserControls/Parameter.ascx");

            }
            control.EnableViewState = true;
            parameterControl = (IParm)control;
            parameterControl.ParmName = dr.ParmName;
            parameterControl.ParmDescription = dr.ParmDescription;
            parameterControl.ParmPickList = dr.ParmPickList.ToString();
            if (dr["ParmDefaultValue"].ToString() != "")
                parameterControl.ParmDefaultValue = dr.ParmDefaultValue;
            control.Visible = dr.ParmDisplay;
            PlaceHolder1.Controls.Add(control);





        }

感谢。

1 个答案:

答案 0 :(得分:0)

当您将控件设置为不可见时,它不会呈现给浏览器。因此它不会在回发时出现,并且该值不会使其返回到服务器。

如果您需要保持显示控件的值w / out,请将其直接存储在视图状态或隐藏输入等。