我在LinkButton
内使用gridview
点击LinkButton
打开弹出窗口。但是弹出窗口会出现一秒钟,并在页面加载时消失。
我想避免页面加载。我无法使用直接链接,因为它会影响我的网页中的其他功能。请帮忙。提前致谢
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID='lnkAbsent' OnClientClick='<%#"showModalPopup("+Eval("Category_ID")+","+Eval("Div_ID")+",1,"+Eval("AbsentStudent")+");"%>' Text='<%# Eval("AbsentStudent") %>' runat="server"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
答案 0 :(得分:1)
您可以尝试使用以下属性,看看它是否有效:
CausesValidation="False"
另一个解决方案如下,请尝试这个:
假设你的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功能成为您的验证器。如果为false,则不执行“href”链接;但是,如果确实如此,href将被执行。这消除了你的回复。
答案 1 :(得分:0)
您应该在客户端方法中使用return false,它不会触发回发事件。
function showModalPopup(){
///do your stuff
return false;
}
或写点类似的内容。
<asp:LinkButton ID='lnkAbsent' OnClientClick='<%#"showModalPopup("+Eval("Category_ID")+","+Eval("Div_ID")+",1,"+Eval("AbsentStudent")+");"%>return false;' Text='<%# Eval("AbsentStudent") %>' runat="server"></asp:LinkButton>
答案 2 :(得分:0)
您可以使用UpdatePanel
来避免页面刷新。
<asp:UpdatePanel runat="server">
<ContentTemplate>
</ContentTemplate>
</asp:UpdatePanel>