【问题标题】:__doPostBack JS functions do not work when the following code is in the VB file当VB文件中有以下代码时,__doPostBack JS函数不起作用
【发布时间】:2011-06-28 02:03:49
【问题描述】:

我创建了一个页面,让我的站点管理员可以编辑和添加数据库中表的记录。由于 ASP.NET gridview 不允许 INSERT(它只允许选择、编辑和删除),我在 VB 文件中添加了一点以允许 INSERT INTO 语句(因为它是使用和@987654321 提交的,所以它有效@,它被翻译成 html 为 <input> 而不是 __doPostBack)。

问题是,当我添加代码时,除了根本无法使用 loginStatus(注销链接)之外,我无法在 gridview 上使用分页或排序(即使 loginStatus 完全独立于accessDataSource 或 gridview。

实际文件:

    <asp:LoginStatus ID="LoginStatus1" runat="server" 
            LogoutAction="RedirectToLoginPage" />
        <asp:GridView ID="GridView1" runat="server" 
            AllowSorting="True" AutoGenerateColumns="False" CellPadding="4" 
            DataKeyNames="ID" DataSourceID="ADS" ForeColor="#333333" 
            GridLines="Horizontal" Width="100%" AutoGenerateDeleteButton="True" 
            AutoGenerateEditButton="True" AutoGenerateSelectButton="True">
           ...(irrelevant code omitted)
    <table>
        <tr><td class="style4"><asp:Label ID="lblID" runat="server" Text="ID"></asp:Label></td>
        <td class="style5"><asp:TextBox ID="tbID" runat="server" Width="127px"></asp:TextBox></td>
        <td class="style5">
            &nbsp;</td></tr>
        <tr><td class="style2"><asp:Label ID="lblHead" runat="server" Text="Head"></asp:Label></td>
        <td><asp:TextBox ID="tbHead" runat="server"></asp:TextBox></td>
        <td>
            <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
                ErrorMessage="Please enter a header" ControlToValidate="tbHead"></asp:RequiredFieldValidator>
            </td></tr>
        <tr><td class="style3"><asp:Label ID="lblBody" runat="server" Text="Body"></asp:Label></td>
        <td class="style1"><asp:TextBox ID="tbBody" runat="server"></asp:TextBox></td>
        <td class="style1"></td></tr>
        <tr><td class="style2"><asp:Label ID="lblBy" runat="server" Text="by"></asp:Label></td>
        <td><asp:TextBox ID="tbBy" runat="server"></asp:TextBox></td>
        <td></td></tr>
        <tr><td class="style2"><asp:Label ID="lblURL" runat="server" Text="URL"></asp:Label></td>
        <td><asp:TextBox ID="tbURL" runat="server"></asp:TextBox></td>
        <td>
            <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" 
                ErrorMessage="Please enter a valid url" ControlToValidate="tbURL"></asp:RequiredFieldValidator>
            <asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" 
                ErrorMessage="Please enter a valid url" ControlToValidate="tbURL" 
                Display="Dynamic" 
                ValidationExpression="http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&amp;=]*)?"></asp:RegularExpressionValidator>
            </td></tr>
        <tr><td class="style2"><asp:Label ID="lblDateposted" runat="server" Text="dateposted"></asp:Label></td>
        <td><asp:TextBox ID="tbDateposted" runat="server"></asp:TextBox></td>
        <td>
            <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" 
                ErrorMessage="Please enter a valid date following the current format (mm/dd/yyyy) ignore the time." 
                ControlToValidate="tbDateposted"></asp:RequiredFieldValidator>
            <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 

                ErrorMessage="Please enter a valid date following the current format (mm/dd/yyyy) ignore the time." 
                ControlToValidate="tbDateposted" Display="Dynamic" 
                ValidationExpression="^(?=\d)(?:(?:(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})|(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))|(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2}))($|\ (?=\d)))?(((0?[1-9]|1[012])(:[0-5]\d){0,2}(\ [AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$"></asp:RegularExpressionValidator>
            </td></tr>
        <tr><td class="style2">
            <asp:Button ID="submit" runat="server" Text="Update" /></td>
    </tr></table>

这是VB文件:

Imports System.Data.OleDb

Partial Class staffcp_Default
    Inherits System.Web.UI.Page


    Protected Sub submit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles submit.Click
        Dim connStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("../App_Data/Signees.mdb")
        Dim dbConnection As OleDbConnection = New OleDbConnection(connStr)
        Dim SQL As New OleDbCommand
        dbConnection.Open()
        SQL.Connection = dbConnection
        SQL.CommandText = "INSERT INTO aae VALUES (" + tbID.Text + ", '" + tbHead.Text + "', '" + tbBody.Text + "', '" + tbBy.Text + "', '" + tbURL.Text + "', '" + tbDateposted.Text + "')"
        SQL.ExecuteNonQuery()
        dbConnection.Close()
        SQL.Connection.Close()
    End Sub  

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim SQLResult As Object
        Dim connStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("../App_Data/Signees.mdb")
        Dim dbConnection As OleDbConnection = New OleDbConnection(connStr)
        Dim SQL As New OleDbCommand
        dbConnection.Open()
        SQL.Connection = dbConnection
        SQL.CommandText = "SELECT COUNT (*) FROM aae"
        SQLResult = SQL.ExecuteScalar
        Dim count As Object = SQLResult
        dbConnection.Close()
        SQL.Connection.Close()
        tbID.Text = count.ToString + 1
        tbID.ReadOnly = True
    End Sub
End Class

任何帮助将不胜感激

[编辑]:我只是在清除 VB 文件的情况下尝试了同样的事情:同样的问题,没有排序或分页(或在 loginStatus 上注销)。在这一点上我很困惑。

[编辑]:我能够一直将问题定位到页面底部的更新按钮。不知道为什么。

【问题讨论】:

  • 您能否将您的代码缩减为仍然存在问题的最少量代码?我们没有您的数据库,无法按原样执行代码。

标签: javascript asp.net vb.net gridview visual-web-developer


【解决方案1】:

添加: 如果不是 page.isPostBack 在 page_load 事件中返回您的代码

【讨论】:

  • 仍然不起作用,但是,当我将“asp:Button”切换为“asp:LinkBut​​ton”时,gridview 和 loginStatus 上的排序和分页工作正常。我可以使用 LinkBut​​ton,但更喜欢常规 Button。此外,我很困惑为什么当我看不到两者之间的任何关系时它不起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-07
  • 1970-01-01
  • 2018-08-14
  • 2013-09-03
相关资源
最近更新 更多