У меня есть gridview с некоторыми данными из моей базы данных, и каждая строка контролирует что-то (в реальном мире). Один из столбцов говорит мне, включен ли мониторинг или отключен (0 или 1). Я добавил столбец (Templatefield) в gridview с помощью LinkButton. Это TemplateField объявляется следующим образом:Проблема с командой обновления в gridview
<asp:TemplateField HeaderText="Action">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" class="btn" runat="server" CausesValidation="false"
CommandName="Update" Text='<%# Eval("Disable").ToString() == "1" ? "Enable" : "Disable" %>'></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
Как вы можете видеть, свойство Text кнопки является «Enable» (если мониторинг в настоящее время отключен) или «Отключить» (если мониторинг в настоящее время включен). Это прекрасно работает.
Сетка решетки связана с объектом ObjectDataSource, а Linkbutton связана с командой Update указанного DataSource. Команда Update объекта ObjectDataSource вызывает метод из одной из моих DLL, и мне нужно передать значение (0 или 1), которое будет записано в DataBase.
Как перейти к обновляющему событию, чтобы при нажатии этой кнопки он либо активирует, либо отключает (устанавливает поле 0 или 1) в базе данных в зависимости от его текущего состояния.
Проблема связана с обновляющим событием на объекте ObjectDataSource. Я не могу представить никаких параметров
protected void ods_Updating(object sender, ObjectDataSourceMethodEventArgs e)
{
//I would like to accomplish something like
e.InputParameters["value"] = isItEnabled ? 0 : 1;
}
Любые идеи о том, как действовать?
Edit 1: Мой в.п.с. разметки
<asp:ObjectDataSource ID="odsHistoriqueSurveillance" runat="server"
OldValuesParameterFormatString="original_{0}"
onselecting="odsHistoriqueSurveillance_Selecting" SelectMethod="getHistorique"
TypeName="WebOrderProcessingBLL.SRVCheckValueBLLWrapper"
onUpdating="ods_Updating"
UpdateMethod="EnableOrDisableSurveillanceFromHistorique">
<SelectParameters>
<asp:Parameter Name="ParamName" Type="String" />
</SelectParameters>
<UpdateParameters>
<asp:Parameter Name="original_id" Type="Int32" />
<asp:Parameter Name="value" Type="Byte" />
</UpdateParameters>
</asp:ObjectDataSource>
Не могли бы вы показать разметку 'ObjectDataSource'? – jadarnel27
@ jadarnel27 обновленный пост – WizLiz
Можете ли вы получить доступ к полю «Отключить» из метода обновления, если вы измените «Text =» <% # Eval («Отключить»). ToString() == "1"? «Включить»: «Отключить»%> ''только« Text = »<% # Bind (« Отключить »)%>''? – jadarnel27