У меня есть, например, asp: FormView, который поддерживает чтение, вставку, обновление, удаление и привязан к источнику данных:
<asp:FormView ID="FormView1" runat="server"
DataSourceID="ObjectDataSource1" >
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("MyText") %>' />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("MyText") %>' />
</EditItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("MyText") %>' />
</InsertItemTemplate>
</asp:FormView>
Если я нахожусь в режиме чтения или редактирования, элемент управления инициализируется со свойством MyText
текущего объекта, который связан с FormView.
Но когда я перехожу в режим вставки, у меня нет «текущего объекта» (FormView1.DataItem
действительно null
), и элементы управления пусты.
Если я хочу инициализировать свой элемент управления TextBox определенным значением, как я могу это сделать? В каком событии я могу подключиться, чтобы установить значения по умолчанию для элементов управления в InsertItemTemplate?
Особенно я имею в виду использование ObjectDataSource
. Я ожидал, что InsertItemTemplate инициализируется с бизнес-объектом, который лежит в основе моего ObjectDataSource и который создается каркасом ASP.NET просто с помощью конструктора по умолчанию, когда InsertItemTemplate активируется. В конструкторе по умолчанию я бы назначил членам класса значения по умолчанию, которые я хотел бы иметь в моих элементах управления InsertItemTemplate. Но, к сожалению, это не так: объект «по умолчанию» не создается и не привязывается к FormView. Так что, похоже, мне нужно инициализировать все элементы управления по отдельности или создать объект по умолчанию вручную и связать его с InsertItemTemplate FormView. Но как и где я могу это сделать?
Заранее спасибо!