目前我已经有几个按钮在按下时更新标签,但是我想保留其他所有内容 - 其他一些网页控件和一个表格 - 就像它们一样。我试图通过这样做来强制执行:
TableCell addButtonCell = new TableCell();
Button addButton = new Button();
addButton.Text = "Add";
addButton.OnClientClick = "return false;"; // < this
addButton.Click += new EventHandler(addButton_Click);
addButtonCell.Controls.Add(addButton);
但是现在我的实际按钮事件不会触发。
答案 0 :(得分:0)
<asp:Button runat="server" ID="Button1" Text="Add" OnClientClick="click(); return false;" />
<script>
function click(){
alert("Hey, it's not a postback!");
}
</script>
上面的示例显示了如何与客户端上的按钮进行交互。这里的关键是添加return false;
语句,以便不发布回发。因此,在这种情况下不会发生页面重新加载。
根据您的要求,您需要了解 - 是否应在客户端或服务器端处理按钮单击?点击按钮后你想要实现的是什么?
如果您希望在服务器端进行处理而不在每次点击时重新加载页面,则可以尝试UpdatePanel
控制,这样您就可以执行部分页面更新。
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<asp:Button runat="server" ID="Button1" Text="Add" OnClick="addButton_Click" />
</ContentTemplate>
</asp:UpdatePanel>
有关UpdatePanel控件的更多详细信息,请参阅此MSDN文章。