我的情况很奇怪,如果有任何帮助或见解,我将不胜感激。
我正在 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 应用程序设置和目标框架......