按钮不会在gridview上触发?

时间:2015-05-05 18:11:50

标签: asp.net gridview webforms

我的带有gridview的vb.net程序有一个非常复杂的变量查询,它基于先前编程的选择,所以数据源代码在代码隐藏中以及模板字段的各种私有函数:

Dim SqlDataSource1 As New SqlDataSource()
SqlDataSource1.ID = "SqlDataSource1"
Me.Page.Controls.Add(SqlDataSource1)
SqlDataSource1.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings("NativePlantsTESTConnectionString").ConnectionString
SqlDataSource1.SelectCommand = TheQuery  'built elsewhere & populated in this prog
Me.gvPlantList.DataSource = SqlDataSource1
Me.gvPlantList.DataBind()

listplants.aspx上的按钮代码:

<asp:Button ID="btnPrint" runat="server" Text="Print-Ready Selected Plants" />

并在代码隐藏中:

Protected Sub btnPrint_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnPrint.Click
    Dim SessName, Dest As String
    Me.lblErrMsg.Visible = False
    Dim Ctr As Integer
    Dim TheToken As String 
    For Each row As GridViewRow In gvPlantList.Rows
        If row.RowType = DataControlRowType.DataRow Then
            Dim cbRow As CheckBox = TryCast(row.Cells(0).FindControl("cbPrint"), CheckBox)
            If cbRow.Checked Then
                Ctr = Ctr + 1
                If Ctr > 10 Then
                    Me.lblErrMsg.Text = "TOO MANY PLANTS - Currently limited to 10"
                    Me.lblErrMsg.Visible = True
                    Exit Sub
                End If
                TheToken = CType(row.Cells(4).FindControl("lblToken"), Label).Text
                SessName = "Print" & Ctr 
                Session(SessName) = TheToken
            End If
        End If
    Next
    If Ctr = 0 Then
        Me.lblErrMsg.Text = Me.lblErrMsg.Text & "Please check the plants you wish to print, up to 10 max"
        Me.lblErrMsg.Visible = True
        Exit Sub
    End If
    Dest = "printcards.aspx"
    Response.Redirect(Dest)

当选择程序进入列表prog以显示结果时,它上面有一个标准的asp按钮,用于显示所选项目。但是,该按钮不会在IE8或11中触发,但它在Visual Studio调试器,Chrome和Firefox中运行良好。我在这里阅读了大部分相关问题,但没有看到这个问题。

我添加了临时回发检查代码(我以为我读过某些地方回复并不总能正常使用gridviews,但可能是错误的),并且aspx上的临时标签显示正在发生的事情是正确的“第一次在“和”是回发“显示。我看到除IE之外的所有内容都是正确的值,它永远不会超出“第一次”。

有趣的是,据我所知,这只发生在我们的网络服务器上,并且它可以在IE中为外部其他人正常工作,这让我觉得我们的服务器上有一些影响这个的东西。其他人建议我们的代理服务器上的更改可能使得IE正在为页面的初始命中获得缓存页面,但是由于某些新规则,回发无法通过,但如果是是这样的,只会影响gridview页面吗?初始选择页面按钮工作正常,以便有点理解。

该网站是http://www.albemarle.org/nativeplantstest,如果有人想尝试,那么我们失败的程序就是listplants.aspx。

谢谢!
伊莱恩

0 个答案:

没有答案