0

我想我错过了一些东西。显示 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>
4

1 回答 1

0

正如@JonH 所建议的那样,作为一种解决方案,如果您遇到任何 UCB(未识别的代码行为),我已经不得不在其他一些更错误的场景中使用......只需按照以下操作

1)打开一个新文件夹作为项目工作文件夹的新家

2) 从 The Buggy 项目中复制所有子文件夹,例如images, jsetc'

3)创建一个新的webSite/任何其他application你有不寻常的问题

然后只需应用应用程序所需的所有引用,将代码复制到新创建的 .cs/vb/aspx 相应地,使用现有项目(您在单独文件中的其他类)

现在你准备好继续工作了...

虫子现在应该在你身后

只是不要忘记删除旧项目以及与之关联的任何解决方案文件。

希望对其他也遇到UCB现象的新开发者有所帮助

于 2012-12-04T21:57:05.583 回答