javascript - 为什么我的 no-submit (HtmlButton) 仍然提交?

标签 javascript c# jquery sharepoint-2010

我想动态地使行一直存在,但最初是隐藏的,可见。

我尝试过客户端(jQuery)路线,但遇到了问题。

我更喜欢走服务器端(C#)道路,并且我认为我已经找到了基于 this thread 来完成它的方法。和这段代码:

HtmlButton btnAddFoapalRow = null;
. . .       
btnAddFoapalRow = new HtmlButton();
btnAddFoapalRow.Attributes["type"] = "button";
btnAddFoapalRow.InnerHtml = "+"; 
btnAddFoapalRow.ID = "btnAddFoapalRow";
btnAddFoapalRow.ServerClick += new EventHandler(btnAddFoapalRow_Click);
this.Controls.Add(btnAddFoapalRow);

private void btnAddFoapalRow_Click(object sender, EventArgs e)
{
    try
    {
        ShowNextFoapalRow();
    }
    catch (Exception ex)
    {
        String s = String.Format("Exception occurred: {0}", ex.Message); // TODO: Log this somewhere
    }
}

//// This only works the first time, because it causes the page to be reloaded, setting foapalRowsShowing back to 2
private void ShowNextFoapalRow()
{
    switch (foapalRowsShowing)
    {
        case 2:
            foapalrow3.Visible = true;
            foapalRowsShowing = 3;
            break;
        case 3:
            foapalrow4.Visible = true;
            foapalRowsShowing = 4;
            btnAddFoapalRow.Disabled = true;
            break;
    }
}


foapalrow3 = new HtmlTableRow();
foapalrow3.ID = "foapalrow3";
foapalrow3.Visible = false;
. . .
foapalrow3 = new HtmlTableRow();
foapalrow3.ID = "foapalrow3";
foapalrow3.Visible = false;

...但不行 - 第一次使第二行可见,但随后混合“+”HtmlButton 不会使第三行可见。逐步浏览代码,我明白了原因:每次我按下按钮时都会提交页面,因此初始代码会再次运行,将可见行数设置回两行,并且始终使row3 可见(绝不是 row4)。

这就是混搭按钮后的样子,无论我混搭按钮多少次(应该再添加一行,但事实并非如此):

enter image description here

顺便说一句,第 1 行是列标题行;第 2 行是默认可见的单行; row3 和 row4 存在,但一开始不可见。

最佳答案

尝试使用

btnAddFoapalRow.Attributes.Add("onclick", "return false;");

关于javascript - 为什么我的 no-submit (HtmlButton) 仍然提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30947889/

相关文章:

c# - 是否有一个 WaitOne 方法本质上首先调用 Reset?

c# - .Net Core 2.1.2 版本设置和 Controller 脚手架(序列不包含任何元素)

jquery - 将 css 媒体查询应用于响应式设计时 css 发生变化

javascript - 是否可以获取网页中所有已加载资源的网络大小?

javascript - 追加一个包含 document.write 的 JS 文件

javascript - 无法访问vuejs中方法中的数据变量

javascript - 如何在解析时更改 JSON 属性名称

c# - 为什么我不能对这个表达式使用三元运算符?

javascript - jQuery 祖先使用 jQuery 对象

jQuery UI 对话框未居中