none
GridView的更新和删除按钮失效 RRS feed

  • 问题

  • 小弟是asp.net初学者,有一个问题请教。
    GridView自带的更新和删除按钮失效(点击没有任何反应,也没有任何出错信息),数据没有变化。
    Google了一下类似问题的解答,有的说是查询没有带上主键列,有的说GridView的DataKeyNames没有指定,这项问题我都没有。但就是得不到正确结果。
    很郁闷,大侠出手相救,感激不尽!
    2010年1月30日 4:01

答案

  • 谢谢mldark的指点,现在可以了。
    那么当选择开放式并发选项时,就不能使用删除和更新了?还是必须自定义删除和更新方法?


    这是bug  我有时候用这个方式 像你的问题一样
    2010年1月30日 6:09

全部回复

  • 怎么没有人回答呢?很急啊。
    2010年1月30日 4:46
  • 你好!

    提示什么信息?把代码发出来大家帮你看看。

    知识改变命运,奋斗成就人生!
    2010年1月30日 5:00
    版主
  • 版主大人好!没有提示信息,但没有任何响应(数据没有被删除或更新)。我基本没有写什么代码,使用Visual Studio的Wizard完成,最终代码如下:
    <form id="form1" runat="server">
        <div>
        <center>
           
            <asp:button Text="发表文章" runat="server" ID="btnPost" OnClick="btnPost_Click" />          
            <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True"
                AutoGenerateColumns="False" BackColor="White" BorderColor="White" BorderStyle="Ridge"
                BorderWidth="2px" CellPadding="3" CellSpacing="1" DataKeyNames="ID" DataSourceID="SqlDataSource1"
                GridLines="None">
                <FooterStyle BackColor="#C6C3C6" ForeColor="Black" />
                <RowStyle BackColor="#DEDFDE" ForeColor="Black" />
                <Columns>
                    <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
                    <asp:BoundField DataField="ID" HeaderText="编号" InsertVisible="False" ReadOnly="True"
                        SortExpression="ID" />
                    <asp:BoundField DataField="Topic" HeaderText="标题" SortExpression="Topic" />
                    <asp:BoundField DataField="Author" HeaderText="作者" SortExpression="Author" />
                    <asp:BoundField DataField="CreationDate" HeaderText="发表/修改时间" SortExpression="CreationDate" />
                </Columns>
                <PagerStyle BackColor="#C6C3C6" ForeColor="Black" HorizontalAlign="Right" />
                <SelectedRowStyle BackColor="#9471DE" Font-Bold="True" ForeColor="White" />
                <HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#E7E7FF" />
            </asp:GridView>
            <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConflictDetection="CompareAllValues"
                ConnectionString="<%$ ConnectionStrings:YouthSiteConnectionString %>" DeleteCommand="DELETE FROM [tb_Post] WHERE [ID] = @original_ID AND [Topic] = @original_Topic AND [Author] = @original_Author AND [CreationDate] = @original_CreationDate"
                InsertCommand="INSERT INTO [tb_Post] ([Topic], [Author], [CreationDate]) VALUES (@Topic, @Author, @CreationDate)"
                OldValuesParameterFormatString="original_{0}" SelectCommand="SELECT [ID], [Topic], [Author], [CreationDate] FROM [tb_Post]"
                UpdateCommand="UPDATE [tb_Post] SET [Topic] = @Topic, [Author] = @Author, [CreationDate] = @CreationDate WHERE [ID] = @original_ID AND [Topic] = @original_Topic AND [Author] = @original_Author AND [CreationDate] = @original_CreationDate">
                <DeleteParameters>
                    <asp:Parameter Name="original_ID" Type="Int32" />
                    <asp:Parameter Name="original_Topic" Type="String" />
                    <asp:Parameter Name="original_Author" Type="String" />
                    <asp:Parameter Name="original_CreationDate" Type="DateTime" />
                </DeleteParameters>
                <UpdateParameters>
                    <asp:Parameter Name="Topic" Type="String" />
                    <asp:Parameter Name="Author" Type="String" />
                    <asp:Parameter Name="CreationDate" Type="DateTime" />
                    <asp:Parameter Name="original_ID" Type="Int32" />
                    <asp:Parameter Name="original_Topic" Type="String" />
                    <asp:Parameter Name="original_Author" Type="String" />
                    <asp:Parameter Name="original_CreationDate" Type="DateTime" />
                </UpdateParameters>
                <InsertParameters>
                    <asp:Parameter Name="Topic" Type="String" />
                    <asp:Parameter Name="Author" Type="String" />
                    <asp:Parameter Name="CreationDate" Type="DateTime" />
                </InsertParameters>
            </asp:SqlDataSource>
                    
        </center>   
        </div>
        </form>

    数据可以正常显示,但点击删除和编辑按钮均无响应。

    2010年1月30日 5:37
  • 你重新生成Sqldatasource  不要用开放式并发 可以解决问题
    2010年1月30日 5:42
  • 谢谢mldark的指点,现在可以了。
    那么当选择开放式并发选项时,就不能使用删除和更新了?还是必须自定义删除和更新方法?

    2010年1月30日 5:50
  • 谢谢mldark的指点,现在可以了。
    那么当选择开放式并发选项时,就不能使用删除和更新了?还是必须自定义删除和更新方法?


    这是bug  我有时候用这个方式 像你的问题一样
    2010年1月30日 6:09