好的,这是我的问题:
我有一个表单需要有两个几乎完全相同但收集不同数据集的字段集。这些包含在UpdatePanel中。用户以表格形式输入数据,当他们点击“添加”时 按钮,此行插入DataTable。用户应该能够输入任意数量的行。
由于它们几乎相同,我首先让一个正常工作,然后我用它作为第二个的基础。
问题是现在他们只有“添加”按钮被触发一次。当我再试一次时,没有任何反应。没有回发。
我做了一些研究,他们建议将按钮注册到脚本管理器 ASP.Net button click event not firing
这并没有解决问题。
关于我还能尝试什么的任何想法?
编辑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.";
}
}
答案 0 :(得分:0)
您的网页生命周期事件(即Page_Init,Page_Load,Page_PreRender)中发生了什么?
你是否正在处理每个回发上的内容(你是否正在检查Page.IsPostBack),你应该只在第一次加载页面时处理它?