我有一个奇怪的情况,并会感激任何帮助或见解。
我正在开发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应用设置和目标框架...