我有一個從我的數據庫中獲取一些數據的gridview,並且每行監視一些事物(在真實世界中)。其中一列告訴我監視是啓用還是禁用(0或1)。我使用LinkButton在gridview上添加了一列(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爲「啓用」(如果監控是目前禁用)或「禁用」(如果當前已啓用監控)。這工作正常。
GridView鏈接到一個ObjectDataSource,鏈接按鈕鏈接到所述數據源的命令更新。 ObjectDataSource的Update命令從我的一個DLL中調用一個方法,我需要傳遞將寫入DataBase的值(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標記嗎? – jadarnel27
@ jadarnel27更新後 – WizLiz
如果您更改了'Text ='<%#Eval(「Disable」),那麼您是否可以通過Updating方法訪問「Disable」字段?ToString()==「1」? 「啓用」:「禁用」%>''只是'文本='<%#綁定(「禁用」)%>''? – jadarnel27