我的窗體上有一個ASP.NET linkbutton控件。我想在客戶端使用它的JavaScript,並防止它回發到服務器。 (我想使用linkbutton控件,所以我可以在某些情況下將其隱藏並禁用它,因此不宜使用直線標記)。禁用<ASP:LinkButton>上的回發
如何防止它回發到服務器?
我的窗體上有一個ASP.NET linkbutton控件。我想在客戶端使用它的JavaScript,並防止它回發到服務器。 (我想使用linkbutton控件,所以我可以在某些情況下將其隱藏並禁用它,因此不宜使用直線標記)。禁用<ASP:LinkButton>上的回發
如何防止它回發到服務器?
ASPX代碼:
<asp:LinkButton ID="someID" runat="server" Text="clicky"></asp:LinkButton>
後面的代碼:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
someID.Attributes.Add("onClick", "return false;");
}
}
什麼呈現爲HTML是:
<a onclick="return false;" id="someID" href="javascript:__doPostBack('someID','')">clicky</a>
在這種情況下,發生的事情是的onclick功能,成爲您的驗證。如果它是假的,則不執行「href」鏈接;然而,如果這是真的,href將被執行。這消除了你的回帖。
在C#中,你會做這樣的事情:
MyButton.Attributes.Add("onclick", "put your javascript here including... return false;");
您也可能希望有客戶端功能返回false。
<asp:LinkButton runat="server" id="button" Text="Click Me" OnClick="myfunction();return false;" AutoPostBack="false" />
您也可以考慮:
<span runat="server" id="clickableSpan" onclick="myfunction();" class="clickable">Click Me</span>
我使用點擊類設置之類的東西指針,顏色等,以便其外觀類似於一個錨標記,但我不不得不擔心它得到張貼回來或不得不做的href =「javascript:void(0);」招。
的OnClick結合服務器邊事件,而不是客戶端事件。 onclientclick是客戶端事件 – 2008-10-07 02:21:34
這可能聽起來像一個無益的答案......但爲什麼你使用LinkButton的純粹客戶端的東西?使用標準的HTML定位標記並將其onclick
操作設置爲您的Javascript。
如果您需要服務器生成該鏈接的文本,則使用asp:Label
作爲錨點的開始和結束標記之間的內容。
如果您需要根據服務器端代碼動態更改腳本行爲,請考慮使用asp:Literal
作爲技術。
但是,除非你正在從LinkButton的Click事件處理服務器端活動,否則在這裏使用它似乎沒有多少意義。
我同意。首先,我想使用我已經創建的用於其他地方的鏈接按鈕的皮膚。 – y0mbo 2008-10-07 02:32:58
您是否可以不修改皮膚,或將給定錨的樣式基於皮膚中使用的樣式? – 2008-10-07 10:58:02
我認爲你應該使用HyperLink控件進行調查。這是一個服務器端控件(因此您可以操縱代碼中的可見性等),但是它省略了常規的ol標籤並且不會導致回發。
似乎沒有人會做這樣的:
createEventLinkButton.Attributes.Add("onClick", " if (this.innerHTML == 'Please Wait') { return false; } else { this.innerHTML='Please Wait'; }");
這似乎是唯一可行的辦法。
爲什麼不使用空的ajax更新面板並將linkbutton的click事件連接到它?這種方式僅更新面板將得到更新,從而避免了回傳,並允許您在onclick事件運行你的JavaScript
調用Java腳本函數。
而不是實現屬性:
public partial class _Default : System.Web.UI.Page{
protected void Page_Load(object sender, EventArgs e)
{
someID.Attributes.Add("onClick", "return false;");
}}
用途:
OnClientClick="return false;"
ASP內部:LinkButton的標籤
使用HTML鏈接,而不是asp的鏈接,你可以在兩者之間使用標籤html鏈接服務器端 控制
您可以做到這一點
...LinkButton ID="BtnForgotPassword" runat="server" OnClientClick="ChangeText('1');return false"...
它停止鏈接按鈕回傳
您是否嘗試過使用OnClientClick
?
var myLinkButton = new LinkButton { Text = "Click Here", OnClientClick = "JavaScript: return false;" };
<asp:LinkButton ID="someID" runat="server" Text="clicky" OnClientClick="JavaScript: return false;"></asp:LinkButton>
剛剛成立的href = 「#」
<asp:LinkButton ID="myLink" runat="server" href="#">Click Me</asp:LinkButton>
通過這個幾分鐘前剛去過,做正確的方法是使用
OnClientClick
Return False()
如下面的代碼示例行:
<asp:LinkButton ID="lbtnNext" runat="server" OnClientClick="findAllOccurences(); return false();" Visible="false"/>
只是複製從我的工作該行代碼。
別的東西,你可以做,如果你要保留滾動位置是這樣的:
<asp:LinkButton runat="server" id="someId" href="javascript: void;" Text="Click Me" />
在jQuery的準備功能,你可以這樣做如下 -
var hrefcode = $('a[id*=linkbutton]').attr('href').split(':');
var onclickcode = "javascript: if`(Condition()) {" + hrefcode[1] + ";}";
$('a[id*=linkbutton]').attr('href', onclickcode);
` asp:LinkButton>`並添加上面的點擊沒有任何反應:/ –
SearchForKnowledge
2015-04-08 18:21:36