在IIS6下没有调用GridView OnRowDeleting事件,在dev env中工作正常

时间:2013-07-30 02:01:14

标签: asp.net .net gridview iis-6

我有一个奇怪的情况,并会感激任何帮助或见解。

我正在开发Windows 8,Visual Studio 2012.我有一个ASP.NET应用程序,面向.NET framework 2.0。

这包括具有此定义的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部署”时,“删除”按钮单击似乎根本不起作用。

启用Web浏览器状态栏会在将鼠标悬停在链接上时显示回发,但单击绝对不会执行任何操作;我甚至不认为这是在召唤这个活动。

有什么想法吗?

编辑:现在正在工作。

我很欣赏那些试图提供帮助的人,虽然事件并非如此,但更多的事情似乎甚至没有被解雇。这让我相信这是一个IIS / .NET问题,而不是编码问题。

无论如何,我决定更改我所针对的.NET框架,因此我将其从2.0升级到4.0,重新编译并重新部署,更改相关的IIS设置。这很有效。出于兴趣,我将其更改为再次定位.NET framework 2.0,重新部署并在适当时重新配置IIS,并再次起作用。所以,我很困惑,但我所能把它归结为当时IIS配置的故障。奇怪的是,我首先安装时没有对IIS进行任何更改。

所以,教训是 - 如果您因为类似问题而发现此帖子,请尝试使用您的IIS应用设置和目标框架...

0 个答案:

没有答案