我有一箇中繼器,它的一列中有一個LinkButton,並且我已經連接了onclick事件。當用戶點擊其中一個選項時,我需要知道他們點擊了哪個LinkButton。最佳做法是什麼?Webforms轉發器鏈接問題
2
A
回答
3
您應該使用OnCommand
事件而不是OnClick
使用一些CommandName
和CommandArgument
來區分黑白項目。 This MSDN page有一個例子。
3
通常CommandArgument='<%#Eval("Id")
用於這種目的
<asp:LinkButton ID="LinkButton1" runat="server"
CommandArgument='<%#Eval("Id") %>' CommandName="commandName"></asp:LinkButton>
,然後它會像...
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if(e.CommandName == "commandName")
{
Int32 id = Convert.ToInt32(e.CommandArgument);
}
}
0
檢查與此代碼
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
repTriggers.DataSource = new int[3] { 0, 1, 2 };
repTriggers.DataBind();
}
}
protected void repTriggers_ItemCommand(object sender, RepeaterCommandEventArgs e)
{
if (e.CommandName == "trigger")
{
LinkButton btn = e.CommandSource as LinkButton;
if (btn != null)
{
lblUpdate.Text = "Update triggered by " + btn.ID + e.Item.ItemIndex.ToString();
}
// [Steve] removed UpdatePanel2.Update()
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="TheScriptManager" runat="server"></asp:ScriptManager>
<%-- [Steve] removed UpdatePanel1 --%>
<asp:Repeater ID="repTriggers" runat="server" OnItemCommand="repTriggers_ItemCommand">
<ItemTemplate>
<asp:LinkButton ID="lnkTrigger" runat="server" Text="Trigger" CommandName="trigger"></asp:LinkButton>
</ItemTemplate>
</asp:Repeater>
<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="conditional">
<%-- [Steve] added repTriggers as an AsyncPostBackTrigger --%>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="repTriggers" />
</Triggers>
<ContentTemplate>
<asp:Label ID="lblUpdate" runat="server"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
</form>
</body>
</html>
2
您想要做的事情是連接直放站的ItemCommand
事件,而不是使用LinkButton的OnClick
事件。而是連接LinkButton的CommandName
。
當ItemCommand觸發時,您將能夠根據按鈕上設置的CommandName
來分辨哪個按鈕觸發了它。您還可以訪問Repeater那一行中的所有控件。
MSDN http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.repeater.itemcommand.aspx
相關問題
- 1. 轉發鏈接列表的問題
- 2. 鏈接轉發鏈
- 3. SDL DEVC++鏈接器問題
- 4. jsconcpp鏈接器問題
- 5. DLL鏈接器問題
- 6. VC++鏈接器問題
- 7. 黃金鍊接器問題
- 8. Eclipse Arduino鏈接器問題
- 9. MS C++鏈接器問題
- 10. Webforms刷新問題
- 11. OCUnit鏈接問題問題
- 12. Facebook發送對話框鏈接問題
- 13. JIRA中發佈的問題鏈接
- 14. 問題發現pcap.h和鏈接
- 15. 發佈x64上的鏈接問題
- 16. 軟鏈接問題
- 17. LLVM - 鏈接問題
- 18. MinGW鏈接問題
- 19. GHC鏈接問題
- 20. 問題與鏈接
- 21. makefile鏈接問題
- 22. jquery鏈接問題?
- 23. Zendframework鏈接問題
- 24. AIX鏈接問題
- 25. librrd鏈接問題
- 26. Codeigniter鏈接問題
- 27. jQuery問題鏈接
- 28. RewriteRule - 鏈接問題
- 29. 鏈接問題(VC6)
- 30. 問題與鏈接