更新后刷新 GridView

4

基本上,当更新事件发生时,GridView没有显示更新后的值。我在论坛上搜索了许多解决方案,但是当我尝试它们时,没有什么起作用。

数据库确实已经更新,但是只有在重新启动项目后才能看到更新的内容。

我已经做了以下操作:

  • 非常自由地使用GridView1.Databind();
  • 保守地使用GridView1.Databind();
  • 在Page_Load中包含了(!IsPostBack)包装器和GridView1.Databind();
  • 在GridView1_RowUpdating事件中放置GridView1.Databind();
  • ...以及在搜索论坛后尝试的其他一些事情。

C#:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Text;
using System.Data;
using System.Configuration;
using System.Data.SqlClient;
using System.IO;

public partial class Styles_ConsolidatedProducers : System.Web.UI.Page
{

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
    GridView1.DataBind();
}

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        GridView1.DataBind();
    }
    else
    {
        //GridView1.DataBind();
    }
}

public override void VerifyRenderingInServerForm(Control control)
{
    /* Verifies that the control is rendered */
}

protected void Gridview1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    GridView1.PageIndex = e.NewPageIndex;
    GridView1.DataBind();
}
protected void cmdReset_Click(object sender, EventArgs e)
{

    ToggleCheckState(false);
    cboBusinessSource.ClearSelection();
    cboConsolidatedProducer.ClearSelection();
    cboRelinkToConsolidatedProducer.ClearSelection();
    txtSearch.Text = "";
    lblRelinkToConsolidatedProducer.Visible = false;
    cboRelinkToConsolidatedProducer.Visible = false;
    cmdRelink.Visible = false;
    GridView1.DataBind();

}
protected void cboConsolidatedProducer_SelectedIndexChanged(object sender, EventArgs e)
{
    //GridView1.DataBind();
}
protected void cboBusinessSource_SelectedIndexChanged(object sender, EventArgs e)
{
    //GridView1.DataBind();
}

protected void cmdUnlink_Click(object sender, EventArgs e)

{
    {
        bool atLeastOneRowUpdated = false;
        // Iterate through the Products.Rows property
        foreach (GridViewRow row in GridView1.Rows)
        {
            // Access the CheckBox
            CheckBox cb = (CheckBox)row.FindControl("chkUpdate");
            if (cb != null && cb.Checked)
            {
                // Edit row is true.
                atLeastOneRowUpdated = true;
                // Get the MasterID for the selected row.
                int MasterID = Convert.ToInt32(GridView1.DataKeys[row.RowIndex].Value);

                SqlConnection con = new SqlConnection("FOO");
                con.Open();

                string updateSQL = "UPDATE tblMasterDetail " + "SET     ProducerConsolidatedID = @ProducerConsolidatedID, ProducerConsolidatedName = @ProducerConsolidatedName WHERE MasterID = @MasterID";
                Console.WriteLine(updateSQL);
                SqlCommand cmd = new SqlCommand(updateSQL, con);
                cmd.Parameters.Add("@MasterID", SqlDbType.Int, 10, "MasterID");
                cmd.Parameters.Add("@ProducerConsolidatedID", SqlDbType.NVarChar, 20, "ProducerConsolidatedID");
                cmd.Parameters.Add("@ProducerConsolidatedName", SqlDbType.NVarChar, 20, "ProducerConsolidatedName");
                //cmd.Parameters["@ProducerConsolidatedID"].Value = MasterID;
                cmd.Parameters["@MasterID"].Value = MasterID;
                cmd.Parameters["@ProducerConsolidatedID"].Value = "XX";
                cmd.Parameters["@ProducerConsolidatedName"].Value = "XX";
                //Update the row.
                cmd.ExecuteNonQuery();
                GridView1.DataBind();
                con.Close();
                ToggleCheckState(false);
                lblUpdatedRecords.Text += string.Format(
                    "Record unlinked: {0}<br />", MasterID);
                //"This would have updated ProductID {0}<br />", MasterID);
            }
        }
        // Show the Label if at least one row was deleted...
        lblUpdatedRecords.Visible = atLeastOneRowUpdated;
    }
}

private void ToggleCheckState(bool checkState)
{
    // Iterate through the Products.Rows property
    foreach (GridViewRow row in GridView1.Rows)
    {
        // Access the CheckBox
        CheckBox cb = (CheckBox)row.FindControl("chkUpdate");
        if (cb != null)
            cb.Checked = checkState;
    }
}

protected void cmdUncheckAll_Click(object sender, EventArgs e)
{
    ToggleCheckState(false);
    cboRelinkToConsolidatedProducer.Visible = false;
    lblRelinkToConsolidatedProducer.Visible = false;
    cmdRelink.Visible = false;
}
protected void txtSearch_TextChanged(object sender, EventArgs e)
{
    //GridView1.DataBind();
}

protected void cboRelinkToConsolidatedProducer_SelectedIndexChanged(object sender, EventArgs e)
{
    // Get value form dropdown.
    txtRelinkToConsolidatedProducerID.Text = cboRelinkToConsolidatedProducer.SelectedItem.Value;
    // Get value form dropdown.
    txtRelinkToConsolidatedProducerName.Text = cboRelinkToConsolidatedProducer.SelectedItem.Text;
    cmdRelink.Visible = true;
    //GridView1.DataBind();
}
protected void cmdRelinkTo_Click(object sender, EventArgs e)
{
    lblRelinkToConsolidatedProducer.Visible = true;
    cboRelinkToConsolidatedProducer.Visible = true;
}
protected void cmdRelink_Click(object sender, EventArgs e)
{
    bool atLeastOneRowUpdated = false;
    // Iterate through the Products.Rows property
    foreach (GridViewRow row in GridView1.Rows)
    {
        // Access the CheckBox
        CheckBox cb = (CheckBox)row.FindControl("chkUpdate");
        if (cb != null && cb.Checked)
        {
            // Edit row is true.
            atLeastOneRowUpdated = true;
            // Get the MasterID for the selected row.
            int MasterID = Convert.ToInt32(GridView1.DataKeys[row.RowIndex].Value);

            SqlConnection con = new SqlConnection("FOO");
            //con.Open();

            string updateSQL = "UPDATE tblMasterDetail " + "SET ProducerConsolidatedID = @ProducerConsolidatedID, ProducerConsolidatedName = @ProducerConsolidatedName WHERE MasterID = @MasterID";
            Console.WriteLine(updateSQL);
            SqlCommand cmd = new SqlCommand(updateSQL, con);
            cmd.Parameters.Add("@MasterID", SqlDbType.Int, 10, "MasterID");
            cmd.Parameters.Add("@ProducerConsolidatedID", SqlDbType.NVarChar, 20, "ProducerConsolidatedID");
            cmd.Parameters.Add("@ProducerConsolidatedName", SqlDbType.NVarChar, 20, "ProducerConsolidatedName");
            cmd.Parameters["@MasterID"].Value = MasterID;
            cmd.Parameters["@ProducerConsolidatedID"].Value = txtRelinkToConsolidatedProducerID.Text; 
            cmd.Parameters["@ProducerConsolidatedName"].Value = txtRelinkToConsolidatedProducerName.Text;
            con.Open();
            //Update the row.
            cmd.ExecuteNonQuery();
            GridView1.DataBind();
            con.Close();
            ToggleCheckState(false);
            lblUpdatedRecords.Text += string.Format(
                "Records relinked: {0}<br />", MasterID);
            //"This would have updated ProductID {0}<br />", MasterID);
            cboRelinkToConsolidatedProducer.Visible = false;
            lblRelinkToConsolidatedProducer.Visible = false;
            cmdRelink.Visible = false;
        }
    }
    // Show the Label if at least one row was deleted...
    lblUpdatedRecords.Visible = atLeastOneRowUpdated;
}

protected void cmdRefresh_Click(object sender, EventArgs e)
{
    GridView1.DataBind();
}

}

Markup:

<%@ Page Language="C#" AutoEventWireup="true" Debug="true"     EnableEventValidation="true" CodeFile="Search.aspx.cs" Inherits="Styles_ConsolidatedProducers"
EnableViewStateMac ="false" EnableSessionState="True" ValidateRequest ="false" ViewStateEncryptionMode ="Never" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Producer Search</title>
<style type="text/css">
    .style1
    {
        font-family: Calibri;
    }
    .style2
    {
        color: #FFFFFF;
    }
    .style3
    {
        font-size: xx-large;
    }
    #form1
    {
        font-family: Calibri;
    }
</style>
</head>
<body>
<form id="form1" runat="server">
<div style="background-color: #000000; width: 1251px;">

    <asp:Image ID="Image1" runat="server" Height="63px" ImageAlign="Left" 
        ImageUrl="~/BM.jpg" Width="93px" />
    <br />
    <span class="style1">
    <span class="style2"><span class="style3">search</span></span></span><br 
        class="style3" />
    <span class="style1"><span class="style2">
    <br />
    </span></span>&nbsp;
    <asp:Label ID="lblConsolidatedProducer" runat="server" style="color: #FFFFFF" 
        Text="Consol. Producer:"></asp:Label>
    <asp:DropDownList ID="cboConsolidatedProducer" AppendDataBoundItems="true" runat="server" 
        AutoPostBack="True" DataSourceID="ConsolidatedProducer" 
        DataTextField="ProducerConsolidatedName" 
        DataValueField="ProducerConsolidatedID" Height="22px" Width="259px" 
        onselectedindexchanged="cboConsolidatedProducer_SelectedIndexChanged">
        <asp:ListItem Value="%" Selected="True">None</asp:ListItem>
        <asp:ListItem Value="XX">Unlinked</asp:ListItem>
    </asp:DropDownList>
    <span class="style1">
    <asp:Label ID="lblBusinessSource" runat="server" style="color: #FFFFFF" 
        Text="Source:"></asp:Label>
    </span>
    <asp:DropDownList ID="cboBusinessSource" AppendDataBoundItems="true" 
        runat="server" AutoPostBack="True" 
        DataSourceID="BusinessSource" DataTextField="BusinessSourceCode" 
        DataValueField="BusinessSourceCode" Height="22px" Width="65px" 
        onselectedindexchanged="cboBusinessSource_SelectedIndexChanged">
        <asp:ListItem Value="%" Selected="True">All</asp:ListItem>
        </asp:DropDownList>
    <asp:Label ID="lblSearch" runat="server" style="color: #FFFFFF" 
    Text="Producer Name:"></asp:Label>
    <asp:TextBox ID="txtSearch" runat="server" 
        ontextchanged="txtSearch_TextChanged" AutoCompleteType="Disabled" 
        AutoPostBack="True" MaxLength="50"></asp:TextBox>
    <asp:SqlDataSource ID="BusinessSource" runat="server" 
        ConnectionString="<%$ ConnectionStrings:BMBESQLConnectionString %>" 
        SelectCommand="SELECT DISTINCT [BusinessSourceCode] FROM [tblMasterDetail] WHERE ([BusinessSourceCode] IS NOT NULL)" 
        CancelSelectOnNullParameter="False">
    </asp:SqlDataSource>
<asp:SqlDataSource ID="MasterDetail" runat="server" 
    ConnectionString="<%$ ConnectionStrings:BMBESQLConnectionString %>" 
    SelectCommand="SELECT MasterID, SystemSourceCode, BusinessSourceCode, PRODUCERMASTERID, PRODUCERCONSOLIDATEDID, ProducerConsolidatedName, GWP, FINMISNATIONALCODE, PRODUCERNATIONALCODE, PRODUCERNAME, [Update] FROM tblMasterDetail" EnableCaching="True"
    FilterExpression="[ProducerConsolidatedID] LIKE '{0}%' and [BusinessSourceCode] LIKE '{1}%' and [ProducerName] Like '%{2}%'" 
    CancelSelectOnNullParameter="False" 
    OldValuesParameterFormatString="original_{0}" 
    InsertCommand="INSERT INTO [tblMasterDetail] ([SystemSourceCode], [BusinessSourceCode], [PRODUCERMASTERID], [PRODUCERCONSOLIDATEDID], [ProducerConsolidatedName], [GWP], [PRODUCERNATIONALCODE], [FINMISNATIONALCODE], [PRODUCERNAME], [Update]) VALUES (@SystemSourceCode, @BusinessSourceCode, @PRODUCERMASTERID, @PRODUCERCONSOLIDATEDID, @ProducerConsolidatedName, @GWP, @PRODUCERNATIONALCODE, @FINMISNATIONALCODE, @PRODUCERNAME, @Update);" 
    DeleteCommand="DELETE FROM [tblMasterDetail] WHERE [MasterID] = @original_MasterID AND (([SystemSourceCode] = @original_SystemSourceCode) OR ([SystemSourceCode] IS NULL AND @original_SystemSourceCode IS NULL)) AND (([BusinessSourceCode] = @original_BusinessSourceCode) OR ([BusinessSourceCode] IS NULL AND @original_BusinessSourceCode IS NULL)) AND (([PRODUCERMASTERID] = @original_PRODUCERMASTERID) OR ([PRODUCERMASTERID] IS NULL AND @original_PRODUCERMASTERID IS NULL)) AND (([PRODUCERCONSOLIDATEDID] = @original_PRODUCERCONSOLIDATEDID) OR ([PRODUCERCONSOLIDATEDID] IS NULL AND @original_PRODUCERCONSOLIDATEDID IS NULL)) AND (([ProducerConsolidatedName] = @original_ProducerConsolidatedName) OR ([ProducerConsolidatedName] IS NULL AND @original_ProducerConsolidatedName IS NULL)) AND (([GWP] = @original_GWP) OR ([GWP] IS NULL AND @original_GWP IS NULL)) AND (([PRODUCERNATIONALCODE] = @original_PRODUCERNATIONALCODE) OR ([PRODUCERNATIONALCODE] IS NULL AND @original_PRODUCERNATIONALCODE IS NULL)) AND (([FINMISNATIONALCODE] = @original_FINMISNATIONALCODE) OR ([FINMISNATIONALCODE] IS NULL AND @original_FINMISNATIONALCODE IS NULL)) AND (([PRODUCERNAME] = @original_PRODUCERNAME) OR ([PRODUCERNAME] IS NULL AND @original_PRODUCERNAME IS NULL)) AND (([Update] = @original_Update) OR ([Update] IS NULL AND @original_Update IS NULL))" 
    ConflictDetection="CompareAllValues">
    <DeleteParameters>
        <asp:Parameter Name="original_MasterID" />
        <asp:Parameter Name="original_SystemSourceCode" />
        <asp:Parameter Name="original_BusinessSourceCode" />
        <asp:Parameter Name="original_PRODUCERMASTERID" />
        <asp:Parameter Name="original_PRODUCERCONSOLIDATEDID" />
        <asp:Parameter Name="original_ProducerConsolidatedName" />
        <asp:Parameter Name="original_GWP" />
        <asp:Parameter Name="original_PRODUCERNATIONALCODE" />
        <asp:Parameter Name="original_FINMISNATIONALCODE" />
        <asp:Parameter Name="original_PRODUCERNAME" />
        <asp:Parameter Name="original_Update" />
    </DeleteParameters>
    <FilterParameters>
        <asp:ControlParameter ControlID="cboConsolidatedProducer" 
            Name="ProducerConsolidatedID" PropertyName="SelectedValue" 
            DefaultValue="" ConvertEmptyStringToNull="true" />
        <asp:ControlParameter ControlID="cboBusinessSource" Name="BusinessSourceCode" 
            PropertyName="SelectedValue" ConvertEmptyStringToNull="true" 
            DefaultValue=" " />
        <asp:ControlParameter ControlID="txtSearch" DefaultValue=" " Name="ProducerName" 
            PropertyName="Text" Type="String" />
    </FilterParameters>

    <InsertParameters>
        <asp:Parameter Name="SystemSourceCode" />
        <asp:Parameter Name="BusinessSourceCode" />
        <asp:Parameter Name="PRODUCERMASTERID" />
        <asp:Parameter Name="PRODUCERCONSOLIDATEDID" />
        <asp:Parameter Name="ProducerConsolidatedName" />
        <asp:Parameter Name="GWP" />
        <asp:Parameter Name="PRODUCERNATIONALCODE" />
        <asp:Parameter Name="FINMISNATIONALCODE" />
        <asp:Parameter Name="PRODUCERNAME" />
        <asp:Parameter Name="Update" />
    </InsertParameters>

</asp:SqlDataSource>
    <asp:SqlDataSource ID="ConsolidatedProducer" runat="server" 
        ConnectionString="<%$ ConnectionStrings:BMBESQLConnectionString %>" 

        SelectCommand="SELECT DISTINCT ProducerConsolidatedName, ProducerConsolidatedID FROM tblProducerConsolidated WHERE (MakeConsolidated = 1) ORDER BY ProducerConsolidatedName" 
        CancelSelectOnNullParameter="False">
    </asp:SqlDataSource>

<asp:Button ID="cmdReset" runat="server" onclick="cmdReset_Click" 
    Text="Reset" />

    <br />
    <br />

</div>
<br />
<asp:Button ID="cmdRelinkTo" runat="server" Text="Relink" 
    onclick="cmdRelinkTo_Click" />
<asp:Button ID="cmdUnlink" runat="server" Text="Unlink" 
    onclick="cmdUnlink_Click" />
<asp:Label ID="lblRelinkToConsolidatedProducer" runat="server" 
    Text="Relink To:" Visible="False"></asp:Label>
<asp:DropDownList ID="cboRelinkToConsolidatedProducer" runat="server" 
    AutoPostBack="True" DataSourceID="ConsolidatedProducer" 
    DataTextField="ProducerConsolidatedName" 
    DataValueField="ProducerConsolidatedID" Height="22px" 
    onselectedindexchanged="cboRelinkToConsolidatedProducer_SelectedIndexChanged" 
    Visible="False" Width="259px">
</asp:DropDownList>
<br />
<asp:Button ID="cmdRelink" runat="server" onclick="cmdRelink_Click" 
    Text="Relink" Visible="False" />
<asp:TextBox ID="txtRelinkToConsolidatedProducerID" runat="server" 
    Visible="False"></asp:TextBox>
<asp:TextBox ID="txtRelinkToConsolidatedProducerName" runat="server" 
    Visible="False"></asp:TextBox>
<br />
<asp:Button ID="cmdUncheckAll" runat="server" onclick="cmdUncheckAll_Click" 
    Text="Clear" Height="26px" Width="54px" />
<asp:Button ID="cmdRefresh" runat="server" onclick="cmdRefresh_Click" 
    Text="Refresh" />
<br />
<br />
<asp:Label ID="lblRecordsFound" runat="server" style="color: #000000" Text="-"></asp:Label>
<br />
<br />
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
    AllowSorting="True" AutoGenerateColumns="False" 
    DataSourceID="MasterDetail"
    onrowupdating="GridView1_RowUpdating"
    Width="1243px" EmptyDataText="-"
    DataKeyNames="MasterID">
    <Columns>
        <asp:HyperLinkField DataNavigateUrlFields="MasterID" 
            DataNavigateUrlFormatString="ProducerDetail.aspx?masterid={0}" Text="View" />
        <asp:TemplateField HeaderText="Update" SortExpression="Update">
            <EditItemTemplate>
                <asp:CheckBox ID="Update" runat="server" Checked='<%# Bind("Update") %>' 
                    AutoPostBack='<%# Bind("Update") %>' />
            </EditItemTemplate>
            <ItemTemplate>
                <asp:CheckBox ID="chkUpdate" runat="server" Checked='<%# Bind("Update") %>' 
                    AutoPostBack='<%# Bind("Update") %>' />
            </ItemTemplate>
            <HeaderStyle HorizontalAlign="Center" />
        </asp:TemplateField>
        <asp:BoundField DataField="MasterID" HeaderText="ID" 
            InsertVisible="False" ReadOnly="True" SortExpression="MasterID" />
        <asp:BoundField DataField="SystemSourceCode" HeaderText="System" 
            ReadOnly="True" SortExpression="SystemSourceCode" />
        <asp:BoundField DataField="BusinessSourceCode" HeaderText="Source" 
            ReadOnly="True" SortExpression="BusinessSourceCode" />
        <asp:BoundField DataField="PRODUCERNAME" HeaderText="Producer Name" 
            ReadOnly="True" SortExpression="PRODUCERNAME" >
        <ControlStyle Width="100px" />
        </asp:BoundField>
        <asp:BoundField DataField="GWP" 
            HeaderText="GWP" SortExpression="GWP" DataFormatString="{0:c}" 
            ReadOnly="True" ApplyFormatInEditMode="True" />
        <asp:BoundField DataField="PRODUCERMASTERID" HeaderText="Producer Master ID" 
            ReadOnly="True" SortExpression="PRODUCERMASTERID" >
        <ControlStyle Width="100px" />
        </asp:BoundField>
        <asp:TemplateField HeaderText="Consol. ID" 
            SortExpression="PRODUCERCONSOLIDATEDID">
            <EditItemTemplate>
                <asp:TextBox ID="txtConsolidatedProducerID" runat="server" 
                    Text='<%# Bind("PRODUCERCONSOLIDATEDID") %>' AutoPostBack="True" CausesValidation="True"></asp:TextBox>
            </EditItemTemplate>
            <ItemTemplate>
                <asp:TextBox ID="ConsolidatedProducerID" runat="server" 
                    Text='<%# Bind("PRODUCERCONSOLIDATEDID") %>' AutoPostBack="True" CausesValidation="True"></asp:TextBox>
            </ItemTemplate>
            <ControlStyle Width="100px" />
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Consol. Name" 
            SortExpression="PRODUCERCONSOLIDATEDID">
            <EditItemTemplate>
                <asp:TextBox ID="txtConsolidatedProducerName" runat="server" 
                    Text='<%# Bind("ProducerConsolidatedName") %>' AutoPostBack="True" CausesValidation="True"></asp:TextBox>
            </EditItemTemplate>
            <ItemTemplate>
                <asp:TextBox ID="ConsolidatedProducerName" runat="server" 
                    Text='<%# Bind("ProducerConsolidatedName") %>' AutoPostBack="True" CausesValidation="True"></asp:TextBox>
            </ItemTemplate>
            <ControlStyle Width="100px" />
        </asp:TemplateField>
        <asp:BoundField DataField="PRODUCERNATIONALCODE" 
            HeaderText="Source Code" 
            SortExpression="PRODUCERNATIONALCODE" ReadOnly="True" />
        <asp:BoundField DataField="FINMISNATIONALCODE" HeaderText="FINMIS Code" 
            ReadOnly="True" SortExpression="FINMISNATIONALCODE" />
    </Columns>
</asp:GridView>
<asp:Label ID="lblUpdatedRecords" runat="server" EnableViewState="False"></asp:Label>
<br />
<br />
</form>

所有其他功能正常 - 这是唯一的未解决问题。欢迎任何指导。


DanRomano,你有逐步执行代码吗?此外,将在cmd.ExecuteNonQuery();周围包装一个try{} catch{}。你所遇到的问题是否围绕你在此处发布的所有代码?如果不是,请缩短代码并仅发布与您遇到的问题相关的代码。 - MethodMan
当您第一次运行程序时,数据网格视图中是否显示了值?如果是,则似乎您没有正确绑定。您是否尝试在不同的事件上调用GridView1.DataBind(); - MethodMan
感谢您的快速回复。我已经更改了我的更新命令,但没有任何变化。 - Dan Romano
我也已经逐步执行了代码。如果你的意思是这个,那么没有问题。我会尝试使用try{} catch{}包装,但这可能是浏览器问题吗? - Dan Romano
3个回答

6
你在SqlDataSource上使用了缓存,这就是为什么在DataBind时它会显示最初的选择结果。
从你的标记中可以看出:
<asp:SqlDataSource ID="MasterDetail" ... EnableCaching="True"

尝试对显式刷新按钮进行以下更新:

protected void cmdRefresh_Click(object sender, EventArgs e)
{
    MasterDetail.EnableCaching = false;
    GridView1.DataBind();
    MasterDetail.EnableCaching = true;
}

Mike - 这个在显式刷新按钮后运行很好。谢谢!Praveen:感谢您的努力。 - Dan Romano
有什么办法可以解决桌面应用程序的问题吗?我没有使用ASP。 - Fardin Behboudi
如果您的设置相同(控件绑定到SqlDataSource),那么应该可以使用相同的方法。否则,我需要更多的信息。如果您发布问题,请告诉我。 - Mike Guthrie

2
我从一篇帖子中得到了这个,但它没有具体说明。试试这个。
 protected void GridView1_Init(object sender, EventArgs e)
 {
     Response.CacheControl = "no-cache";
 }

注意:不需要对标记进行任何操作。

"MasterDetail"是我的数据源 - 当我在GridView1.DataBind()之前加入这行代码时,我收到了以下错误提示:"System.InvalidOperationException: 'GridView1'上定义了DataSource和DataSourceID。请删除其中一个定义。" - Dan Romano
检查我的更新答案...现在它会工作了。 :) 还要将帖子标记为有用,以便它可以帮助其他人。 - Praveen Nambiar
已经在其中:<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" DataSourceID="MasterDetail" onrowupdating="GridView1_RowUpdated" Width="1243px" EmptyDataText="-" DataKeyNames="MasterID"> - Dan Romano
添加了新事件并在标记中包含rowupdated。仍然没有刷新。唉。 - Dan Romano
还是没有运气。这不是真的很烦吗?我非常感谢你的帮助。我已经尝试了许多不同的方法。 - Dan Romano
显示剩余7条评论

0

我不确定这是否是最佳方法,但在更新后,它对我来说正常工作。在单击更新按钮后,我重新编写了 SqlDataSource.SelectCommand 以选择所需的数据。

我的代码:

protected void teamSubmitBTN_Click(object sender, EventArgs e)
{
    ExpScheduleClass ESCU = new ExpScheduleClass();
    ESCU.updateTeamTable(teamLBL.Text, courseLBL.Text, studentLBL.Text);
    SqlDataSource1.SelectCommand = //your select cmd here...


}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接