我有兩個asp:標籤,其中第一個用幾個按鈕代替,第二個用一列項目。在頁面加載時觸發的方法,但不是通過asp按鈕
我想單擊按鈕來過濾項目。
按鈕的內容是通過用html替換文本以編程方式添加的,並且工作正常。
ASP:
<form id="form1" runat="server">
<asp:Label id="filters" runat="server" Text="Filters here"/>
<asp:Label id="itemList" runat="server" Text="List of items here"/>
</form>
過濾器標籤的結果HTML:
<input type="submit" onclientclick="Load_Items(0)" runat="server" value="First"/>
<input type="submit" onclientclick="Load_Items(1)" runat="server" value="Second"/>
<input type="submit" onclientclick="Load_Items(2)" runat="server" value="Third"/>
相關的C#:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Load_Items(0);
}
}
public void Load_Items(int filterType)
{
//code to load items (pseudo below)
for each row in list
if filterType = itemType
build string
replace second label with string
}
在頁面加載發生的一切,就像我希望它與內容被第一項過濾(因此Load_Items(0)
),如果我手動將0更改爲在Page_Load中的其他數字,它會按其他類型進行過濾,但如果我單擊以編程方式添加的按鈕,除了看起來像頁面刷新的情況,什麼都不會發生。
我知道回發檢查工作是通過在它之前和之內添加一個文本替換。
我還添加了一個asp:按鈕,以確保它不是做的按鈕添加如下的方式(與搜索推薦一些額外的東西):
<asp:Button runat="server" CausesValidation="False" onclientclick="Load_Items(2); return false;" text="Submit" />
但是,是什麼是問題嗎?
我沒有看到你創建的按鈕觸發Load_Items()。該如何工作? –
@KaiHartmann - 我的壞,複製粘貼錯誤。 – dudledok
這是行不通的,因爲你的按鈕只是在客戶端調用一個方法,而不是服務器端的方法。 –