У меня есть gridview с некоторыми данными из моей базы данных, и каждая строка что-то контролирует (в реальном мире). В одном из столбцов указано, включен или отключен мониторинг (0 или 1). Я добавил столбец (Templatefield) в gridview с помощью LinkButton. Этот TemplateField объявлен следующим образом:
<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>
Как видите, свойство Текст кнопки имеет значение «Включить» (если мониторинг в данный момент отключен) или «Отключить» (если мониторинг в данный момент включен). Это прекрасно работает.
Представление сетки связано с ObjectDataSource, а кнопка Link связана с командой Update указанного источника данных. Команда Update ObjectDataSource вызывает метод из одной из моих DLL, и мне нужно передать значение (0 или 1), которое будет записано в базу данных.
Как мне поступить в событии обновления, чтобы при нажатии этой кнопки она либо включалась, либо отключалась (устанавливала для поля значение 0 или 1) в базе данных в зависимости от ее текущего состояния.
Моя проблема связана с событием обновления в ObjectDataSource. Я не могу передать какие-либо параметры
protected void ods_Updating(object sender, ObjectDataSourceMethodEventArgs e)
{
//I would like to accomplish something like
e.InputParameters["value"] = isItEnabled ? 0 : 1;
}
Любые идеи о том, как действовать?
Редактировать 1: Моя разметка ods
<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
? - person Josh Darnell   schedule 29.01.2014Text='<%# Eval("Disable").ToString() == "1" ? "Enable" : "Disable" %>'
только наText='<%# Bind("Disable") %>'
? - person Josh Darnell   schedule 29.01.2014Row_Command
? - person Suraj Singh   schedule 03.02.2014