我在ASP .Net中使用LinkButton(將其視爲按鈕)。我需要使用後面的C#代碼以編程方式單擊該按鈕。我怎樣才能做到這一點..?如何設置按鈕以編程方式點擊
0
A
回答
4
不要使用事件處理程序作爲方法,它們的唯一目的是處理事件。所有的功能應該封裝在可以從事件處理程序中調用的方法中,以及從需要它的任何地方調用。
protected void Button_Click(sender As Object, e As CommandEventArgs)
{
int id=int32.Parse(e.CommandArgument.ToString());
doSomething(id);
}
然後,你可以也從頁面的加載事件致電例如這種方法:
protected void Page_Load(object sender, EventArgs e)
{
//get the ID of the first record in GridView's DataSource here or where you databind the GridView
doSomething(id);
}
public void doSomething(int id) { //do something }
如何從GridView的記錄通過ID爲CommandArgument
:
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="Button1" runat="server" CommandArgument='<%#Eval("IdColumn")%>' OnCommand="Button_Click" Text="Do Something">
</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
+0
它的工作很酷...... :) – 2012-02-02 10:28:49
1
嗯,我不太清楚你想在這裏實現什麼。但1個方法是簡單地調用事件處理程序的方法代碼。
但是,如果你有興趣發送響應返回給客戶端,並採取按一下按鈕作爲一個新的請求,你可以試試這個
ASPX:
<asp:LinkButton ID="LinkButton1" runat="server" onclick="LinkButton1_Click">LinkButton1</asp:LinkButton>
<br />
<br />
<asp:LinkButton ID="LinkButton2" runat="server" onclick="LinkButton2_Click">LinkButton2</asp:LinkButton>
C#:
protected void LinkButton1_Click(object sender, EventArgs e)
{
Response.Write("I was programatically called!");
}
protected void LinkButton2_Click(object sender, EventArgs e)
{
string pbref = Page.GetPostBackEventReference(LinkButton1);
Page.ClientScript.RegisterClientScriptBlock(GetType(), "KeyName", "<script>" + pbref + "</script>");
}
但是有1個問題。您可能會遇到事件驗證錯誤。在這種情況下,您可能必須禁用事件驗證,如下所示:
<%@ Page Language="C#" EnableEventValidation="false" ... %>
我不會推薦它。還有其他方法可以解決它..但這是一個不同的谷歌搜索:)
1
private void Page_Load()
{
if (!Page.IsPostBack)
{
//when the pages is rendered and loaded for the first time execution goes here
//so... call the method that selects the first row
SelectsFirtsRow();
}
else
{
//do something else
...
}
}
protected void FirstRowLinkButton_Click(object sender, EventArgs e)
{
//move all the code that selects the first row to a method.
//you can also supply some arguments if they are needed for method execution... that's up to you
SelectsFirtsRow();
}
public void SelectsFirtsRow();
{
//your logic goes here. i.e. selects the first row
}
ps從代碼背後調用事件處理程序是一種不好的做法。事件處理程序旨在激發一些客戶端操作。
相關問題
- 1. 以編程方式點擊按鈕vb.net
- 2. 以編程方式點擊HTML按鈕
- 3. 以編程方式點擊按鈕 - JS
- 4. 以編程方式設置RoundedRect按鈕
- 5. 如何以編程方式點擊十字按鈕X c#
- 6. 如何以編程方式點擊TinyMCE工具欄的按鈕?
- 7. 如何用vb.net以編程方式點擊HTML按鈕
- 8. 如何以編程方式設置按鈕位置?
- 9. 設置WPF按鈕式編程方式
- 10. 以編程方式單擊MessageBox按鈕
- 11. 如何以編程方式設置按鈕文本?
- 12. 如何以編程方式設置按鈕的權重
- 13. 如何以編程方式設置按鈕layout_gravity =「fill_vertical」?
- 14. 如何以編程方式在按鈕上設置標籤
- 15. Android - 如何以編程方式設置按鈕顏色
- 16. 以編程方式調用按鈕的點擊方法
- 17. 以編程方式設置按鈕對齊方式
- 18. iOS - 如何以編程方式將輔助功能焦點設置爲按鈕
- 19. 如何以編程方式將焦點設置到按鈕小部件?
- 20. 如何以編程方式設置和刪除單擊按鈕上的編輯文本上的焦點
- 21. 以編程方式設置等效於按鈕的按鍵
- 22. 以編程方式將SWT按鈕設置爲按下狀態?
- 23. 以編程方式在winforms中添加按鈕點擊?
- 24. 以編程方式點擊Java Swing中的GUI按鈕
- 25. Android Pay - 以編程方式點擊「立即購買」按鈕
- 26. 以編程方式點擊按鈕相機Android
- 27. 以編程方式點擊按鈕時添加EditText和Spinner
- 28. Swift 3以編程方式創建的按鈕不可點擊
- 29. 以編程方式調用ASP.net客戶端的按鈕點擊
- 30. 以編程方式添加按鈕的不同點擊次數
c#是服務器端,你確定你不想使用客戶端的JavaScript? – Niklas 2012-02-02 08:20:43
是否有任何問題爲點擊事件添加事件處理程序? – Reniuz 2012-02-02 08:21:00
事件處理程序調用一些邏輯。沒有其他方式可以調用該邏輯? – Aphelion 2012-02-02 08:26:57