ASP.Net Control Visible = Ложная случайная проблема с данными - PullRequest
0 голосов
/ 28 марта 2011

Кто-нибудь знает о проблеме с установкой свойства Visible элемента управления в значение false, приводящее к изменению значения?

В приведенном ниже коде строка:

control.Visible = dr.ParmDisplay;

В некоторыхна серверах, если элемент управления не виден, он не сохраняет значение, которое было просто установлено над ним.У нас есть тестовый сервер, на котором этот код работает просто отлично, но у нас есть клиент, который не сохраняет значение.Если элемент управления является видимым, он прекрасно сохраняет / показывает / сохраняет значение на любом сервере.

Есть ли какое-то исправление безопасности, которое меняет то, как это работает ???У меня есть Google, и я не вижу ничего, связанного с видимым свойством, имеющим этот эффект.

Вот полный код этой процедуры:

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 голосов
/ 28 марта 2011

Когда вы устанавливаете элемент управления невидимым, он не отображается в браузере.Следовательно, он не будет там при пост-возврате, и значение не вернется на сервер.

Если вам нужно сохранить значение без отображения элемента управления, сохраните его непосредственно в состоянии просмотра или скрытого ввода и т. Д.

...