Установка значений для невидимых полей / свойств в DetailsView - PullRequest
0 голосов
/ 16 марта 2011

У меня есть DetailsView, у которого есть два поля - одно видимое, другое нет.Первое, что заполняет пользователь, второе - автоматическое заполнение.К сожалению, я не смог найти способ установить значение во втором невидимом поле.Я попытался добавить такой код в Page_Load:

 If Not IsPostBack Then
        DetailsView1.DefaultMode = DetailsViewMode.Insert
        Dim txt1 As TextBox = DirectCast(DetailsView1.FindControl("Type"), TextBox)
        txt1.Text = "administrator"
 End If

Но это возвращает ошибку «Ссылка на объект не установлена ​​на экземпляр объекта».Любые идеи о том, как достичь этого - либо с помощью метода выше или другого метода?

Ожидаемый конечный результат заключается в том, что при добавлении новой записи через DetailsView эта запись будет включать имя пользователя (введенноепользователь), а также «тип» «администратор»

Ответы [ 2 ]

1 голос
/ 17 марта 2011

Вы должны установить стиль элементов управления:

style="visibility: hidden; height: 0"

Таким образом, браузер не будет их показывать.

Если вы установите невидимые элементы управления на сервере, HTML не будет отображаться.

Edit: Вы также можете использовать скрытое поле:

<asp:HiddenField runat=server Value="SomeValue" />

Но, может быть, лучше хранить информацию на сервере, в переменной сеанса или чем-то еще. Информация в скрытых полях на клиенте может быть составлена).

1 голос
/ 16 марта 2011

Я решил эту проблему, когда столкнулся с этой проблемой, сделав элемент управления видимым и поместив его за панелью или другим элементом управления.

...