我想我错过了一些东西。显示 html div 的正确方法是什么,例如,如果使用 Page_Onload + isPostBack + asp:button 作为事件的触发器满足实际条件,如下所示:
Page_Load -> 点击事件触发
页面加载 - 元素(在这种情况下为多个表行动态生成的字符串)状态隐藏
客户端点击提交按钮:
元素切换为可见。
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
nothing yet
}
else
{
suppose to check on client event handle by asp button
}
}
// 所以这里是客户端触发的事件
protected void imgButSbmt_Click(object sender, ImageClickEventArgs e)
{
initializeReportTable();
}
突然在试图确保我对这个论点正确时,
我可以看到这imgButSbmt_Click
不是“命中”(在调试模式下附加断点)。
所以首先......我现在可以注意到这是一种不寻常的行为(虽然我正在写这个问题可能与我的所有项目有关,但这个问题根本没有触发,所以我通过删除解决方案文件来解决它我正在写这篇文章)。
所以现在,它确实有效。
但是...这次(虽然尚未创建解决方案)我通过File-Open-Website
.
命中F5
...断点在红色中工作正常.. 这次没有解释标记。但是,按钮和下拉列表中配置为 AutoPostBack 的所有事件
protected void DDL_Month(object sender, EventArgs e)
{
initializeReportTable();
}
没有开火。现在除此之外的所有事件都Page_Load
在触发。再次检查后,它确实会触发,但仅在第二次触发!
这里发生了什么?
我记得我不久前遇到的一些读数说我应该检查 autoeventwireup 并确保它设置为true
(我认为这是默认设置)。
所以这些是页面指令:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
下面是一个表格中的控件 DropDownList + imgButton 的示例:
<td>
<asp:DropDownList ID="DDL_Month" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DDL_Month"></asp:DropDownList>
</td>
<td>
<asp:ImageButton ID="imgButSbmt" ImageUrl="images/sendreq.png"
runat="server" Height="25px" OnClick="imgButSbmt_Click"
style="margin-right: 0px; border-width:" />
</td>