考慮下面的ASP.NET代碼:ASP.NET回發不打正確的方法
<asp:UpdatePanel runat="server" ChildrenAsTriggers="true">
<ContentTemplate>
<asp:MultiView runat="server" ID="MultiView" ActiveViewIndex="0">
<asp:View runat="server">
</asp:View>
<asp:View runat="server">
<p><img alt="Loading..." src="/global/images/ajax-mini-loader.gif" style="vertical-align: middle;" /> Loading...</p>
</asp:View>
<asp:View runat="server">
<asp:GridView runat="server" ID="WarrantyView" OnDataBound="WarrantyView_DataBound" AutoGenerateColumns="false" ItemType="WarrantySystem.Data.ServiceCompany">
<Columns>
<asp:BoundField HeaderText="Name" DataField="Name" />
<asp:BoundField HeaderText="Telephone" DataField="Telephone" />
<asp:BoundField HeaderText="Email" DataField="Email" />
<asp:BoundField HeaderText="Telephone 24/7" DataField="Telephone247" />
<asp:BoundField HeaderText="Email 24/7" DataField="Email247" />
<asp:TemplateField HeaderText="Actions">
<ItemTemplate>
<asp:Button runat="server" ID="btnEdit" CommandName="Edit" CommandArgument="<%# Item.ID %>" Text="Edit" />
<asp:Button runat="server" ID="btnDelete" CommandName="Delete" CommandArgument="<%# Item.ID %>" Text="Delete" OnCommand="btnDelete_Command"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</asp:View>
<asp:View runat="server">
<p>Your data could no be loaded at this time.</p>
</asp:View>
</asp:MultiView>
<asp:Timer runat="server" ID="tmrLoadData" Enabled="true" Interval="1" OnTick="tmrLoadData_Tick" />
</ContentTemplate>
</asp:UpdatePanel>
當點擊btnDelete,回發事件發生時的Page_Load,從不打btnDelete_Command,因爲它應該。我失去了爲什麼!
編輯:同樣的問題發生在編輯按鈕...好的,所以在這個例子中,沒有OnClick或OnCommand事件,但我剛剛測試過...它做同樣的事情。
工作原理:
- 該頁面加載和顯示一個空視圖。
- 計時器滴答並開始加載數據,並顯示數據加載視圖。
- 數據加載完成後,顯示數據視圖。
- 單擊編輯時,頁面應該紅色修改到編輯頁面。
- 點擊刪除時,頁面應該刪除條目。
編輯:由於每個用戶評論(服務器端代碼指令代碼):
protected void btnDelete_Command(object sender, CommandEventArgs e)
{
bool result = this.mgr.DeleteServiceCompany(Int32.Parse(e.CommandArgument.ToString()));
}
protected void btnEdit_Command(object sender, CommandEventArgs e)
{
Response.Redirect("ServiceCompany.aspx?id=" + e.CommandArgument.ToString());
}
你能告訴我們你的代碼的命令:編輯和刪除。 – 2013-04-09 15:21:05
@JackPettinger,請參閱編輯。沒有什麼不同,因爲他們根本沒有被擊中! :-( – series0ne 2013-04-09 15:24:41
它在'gridview'中,使用'gridview'的'rowcommand'事件 – 2013-04-09 15:27:38