0

我的情况很奇怪,如果有任何帮助或见解,我将不胜感激。

我正在 Windows 8、Visual Studio 2012 上进行开发。我有一个面向 .NET 框架 2.0 的 ASP.NET 应用程序。

这包括具有此定义的 GridView

  <asp:Label ID="Message" runat="server" ForeColor="Red" Text="" />
  <asp:GridView ID="grdDocs" runat="server"
        BackColor="LightGoldenrodYellow" BorderColor="Tan" BorderWidth="1px" CellPadding="2" 
        EnableModelValidation="False" ForeColor="Black" GridLines="None" 
        AutoGenerateColumns="false" AutoGenerateEditButton="false"
        OnRowDeleting="GridViewDeleteEventHandler" EnableTheming="False" EnableViewState="False">
      <AlternatingRowStyle BackColor="PaleGoldenrod" />
      <FooterStyle BackColor="Tan" />
      <HeaderStyle BackColor="Tan" Font-Bold="True" />
      <PagerStyle BackColor="PaleGoldenrod" ForeColor="DarkSlateBlue" 
          HorizontalAlign="Center" />
      <SelectedRowStyle BackColor="DarkSlateBlue" ForeColor="GhostWhite" />
    <Columns>
      <asp:BoundField HeaderText="ID" DataField="DocumentID" ItemStyle-HorizontalAlign="Left" HeaderStyle-HorizontalAlign="Left" SortExpression="DocumentID" />
      <asp:BoundField HeaderText="Date" DataField="DisplayDate" ItemStyle-HorizontalAlign="Left" HeaderStyle-HorizontalAlign="Left" SortExpression="DisplayDate" />
      <asp:HyperLinkField HeaderText="Document" ItemStyle-HorizontalAlign="Left" HeaderStyle-HorizontalAlign="Left"
        DataNavigateUrlFields="FileName"
        DataNavigateUrlFormatString="prv/{0}" Target="_blank"
        DataTextField="DisplayName" SortExpression="DisplayName" />
    </Columns>
  </asp:GridView>

在代码中是一个事件处理程序

    protected void GridViewDeleteEventHandler(object sender, GridViewDeleteEventArgs e)
    {
        var id = grdDocs.Rows[e.RowIndex].Cells[1].Text;

        Message.Text = "Deleting document with ID " + id;

        OleDbConnection db = new clsUtilities().OpenDB();
        OleDbCommand cmd = new OleDbCommand("delete from PrivateDocuments where DocumentID = " + id, db);
        cmd.ExecuteNonQuery();
        db.Close();

        grdDocs.Rows[e.RowIndex].Visible = false;
    }

现在,在我的测试机器上可以正常工作。网格在每一行的开头显示“删除”(不是很美观,但至少它在那里)。当我单击它时,我的事件会触发并删除该行。

但是,当复制到生产服务器 - Windows Server 2003、IIS 6、“xcopy 部署”时,单击“删除”按钮似乎根本没有做任何事情。

将鼠标悬停在链接上时,打开网络浏览器状态栏会显示回发,但单击绝对不会执行任何操作;我什至不认为它正在调用该事件。

有什么想法吗?

编辑:现在工作。

我感谢那些试图提供帮助的人,尽管事件并非没有奏效,更多的是它似乎甚至没有被触发。这让我相信这是一个 IIS / .NET 问题,而不是编码问题。

无论如何,我决定更改我的目标 .NET 框架,因此我将其从 2.0 升级到 4.0,重新编译和重新部署,更改相关的 IIS 设置。这行得通。出于兴趣,我再次将其更改为以 .NET Framework 2.0 为目标,根据需要重新部署和重新配置 IIS,并且再次正常工作。所以,我很困惑,但我能把它归结为当时 IIS 配置的一个小故障。奇怪的是,我在安装时没有对 IIS 进行任何更改。

所以,教训是 - 如果你因为类似的问题而发现这篇文章,请尝试你的 IIS 应用程序设置和目标框架......

4

0 回答 0