В соответствии с определенным значением строки (Тип) я должен использовать TextBox или DropDownlist внутри EditTemplateField (только ОДИН из них). Как я могу привязать условные элементы управления внутри EditItemTemplate, чтобы сообщить UpdateMethod, какой элемент управления следует учитывать для поля «Значение»?
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="LabelType" runat="server" Text='<%# Eval("Type") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:Label ID="LabelType" runat="server" Text='<%# Eval("Type") %>'></asp:Label>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField >
<ItemTemplate>
<asp:Label ID="LabelValue" runat="server" Text='<%# Eval("Value") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<div style="text-align:center">
<asp:TextBox ID="TextBoxValue" runat="server" Text='<%# Bind("Value") %>'></asp:TextBox>
<asp:DropDownList ID="DropDownListValue" runat="server" SelectedValue='<%# Bind("Value") %>'>
</asp:DropDownList>
</div>
</EditItemTemplate>
</asp:TemplateField>
UpdateMethod GridView имеет "Value" в качестве входного параметра, и он должен иметь возможность решить, брать ли его из DropDownListValue или TextBoxValue.
<asp:ObjectDataSource ID="ODSResults" runat="server"
SelectMethod="GetDataByIdDevice"
TypeName="DataSetSWCTableAdapters.DispositivoParametro_TableAdapter"
UpdateMethod="Save">
<SelectParameters>
<asp:QueryStringParameter Name="IdDevice" QueryStringField="id" Type="Int32" />
<asp:ProfileParameter Name="Culture" PropertyName="Cultura" Type="String" />
<asp:Parameter Name="ParameterCode" Type="String" />
</SelectParameters>
<UpdateParameters>
<asp:Parameter Name="IdDevice" Type="Int32" />
<asp:Parameter Name="IdParameter" Type="Int32" />
<asp:Parameter Name="Value" Type="Int64" />
</UpdateParameters>
</asp:ObjectDataSource>
Я пытался скрыть/показать элементы управления TextBoxValue и DropDownListValue (используя свойство «Visible»), но это не работает: пользовательский интерфейс в порядке, но UpdateMethod всегда получает 0 в качестве входного значения (я думаю, в результате приведения пустой строки).