好的,这是我的问题:
我有一个表单,它需要两个几乎相同但收集不同数据集的字段集。这些包含在 UpdatePanel 中。用户在表单中输入数据,当他们点击“添加”按钮时,该行被插入到 DataTable 中。用户应该能够输入任意数量的行。
由于它们几乎相同,我首先让一个正常工作,然后我用它作为第二个的基础。
问题是现在他们“添加”按钮只被触发一次。当我再次尝试击中它时,什么也没有发生。不会发生回发。
我做了一些研究,他们建议将按钮注册到脚本管理器 ASP.Net 按钮单击事件未触发
这并没有解决问题。
关于我还能尝试什么的任何想法?
编辑 3: 解决方案: 问题是 asp:RegularExpressionValidator 与 EnabledClientScript="true"。似乎在呈现控件时,用于验证的控件 javascript 冲突并破坏了 asp:Button 的 javascript。如果我禁用了 ClientScript,那么这些按钮就会起作用。
调查生命周期的建议让我找到了正确的答案。问题是后面的代码没有发生任何生命周期。因此,在检查了按钮呈现的内容之后,这意味着它必须是与 javascript 相关的问题。
编辑 2:我禁用了 asp:Validation 控件并且它正在工作。对此有何见解?
编辑1:
这是一些与问题相关的代码
按钮标记:
<td >
<asp:Button ID="btnPrNew" Text="Add" OnClick="btnPrNew_Click" runat="server" />
</td>
这是处理 onclick 事件的功能
protected void btnPrNew_Click(object sender, EventArgs e)
{
if (prQuantityValidator.IsValid && prPriceValidator.IsValid)
{
permanentRepairs = newItemizedDT();
permanentRepairsTotal = populateDT(gvEstimatePermanentRepairs, permanentRepairs) + addNewPrRow(); ;
updateSubtotal(totalPermanentRepairs, permanentRepairsTotal);
bindData(permanentRepairs, gvEstimatePermanentRepairs);
clearPrForm();
}
else
{
erErrorMessage.Text = "Please enter only number amounts in Quantity and Unit Price field.";
}
}