是否有人知道将控件的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);
}
感谢。
答案 0 :(得分:0)
当您将控件设置为不可见时,它不会呈现给浏览器。因此它不会在回发时出现,并且该值不会使其返回到服务器。
如果您需要保持显示控件的值w / out,请将其直接存储在视图状态或隐藏输入等。