【问题标题】:Update gridview in Asp.Net c#在 Asp.Net c# 中更新 gridview
【发布时间】:2018-01-16 23:57:16
【问题描述】:

我正在使用 c#,并且在 gridview 中有两个按钮可以接受和拒绝。

如果管理员点击接受按钮,它将显示确认消息。

如果管理员单击“确定”,它将更改数据库中的请求状态,我想在单击“确定”后刷新网格视图以禁用接受的学生。

这是我的代码,但它不起作用

此确认消息使用 java 脚本显示“Ok”或“cancel”

function ConfirmAccept() {
        var confirm_value = document.createElement("INPUT");
        confirm_value.type = "hidden";
        confirm_value.name = "confirm_value";

   if (confirm("Are you sure Accept?")) {
       confirm_value.value = "OK";
       //history.go(0);
       //window.location.href = window.location.href;
       //location.reload(true);
        } else {
            confirm_value.value = "Cancle";
   }

   document.forms[0].appendChild(confirm_value);

    }

这个按钮在gridview里面

<asp:TemplateField HeaderText="Request Status">
            <ItemTemplate>
                <asp:Button ID="Accept" runat="server" CommandName="Accept" Text="Accept" OnClick="RequestStatus" OnClientClick="ConfirmAccept()"  />
                <asp:Button ID="Reject" runat="server" CommandName="Reject" Text="Reject" OnClick="RequestStatus" OnClientClick="ConfirmReject()" />

            </ItemTemplate>
        </asp:TemplateField>

以及c#中的这个请求状态

protected void RequestStatus(object sender, System.EventArgs e)
{

    //Get the button that raised the event
    Button btn = (Button)sender;

    //Get the row that contains this button
    GridViewRow row = (GridViewRow)btn.NamingContainer;

    //Get the national Id of the row 
    String nationalID = row.Cells[4].Text;

    //get the id of the button user clicked
    string buttonId = btn.ID;

    string confirmValue = Request.Form["confirm_value"];

    String RowRequestStatus;

    if (buttonId == "Accept"  )
    {

        if (confirmValue == "OK")
        {
           // TextBox1.Text = "accept";
            // this.Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('You sure accept " + row.Cells[4].Text + "!')", true);
            RowRequestStatus = "Accept";

            getdataobj.changeRequestStatue(RowRequestStatus, nationalID);
            btn.PostBackUrl = "~/Admin.aspx";
        }
    }
    else if (buttonId == "Reject")
    {
        if (confirmValue == "OK")
        {
            // this.Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('You sure Reject " + row.Cells[4].Text + " !')", true);

            RowRequestStatus = "Reject";

            getdataobj.changeRequestStatue(RowRequestStatus, nationalID);

        }
    }



}

【问题讨论】:

  • 哪个部分不工作以及您期望什么?进一步解释以获得一些见解。
  • 当我点击 OK 消息时,该行应该从网格视图中删除,但它不起作用,除非我刷新页面

标签: javascript c# asp.net gridview


【解决方案1】:

您可以在加载网格视图之前检查数据库中的请求状态。例如:

 var details = (from st in db.Students
                               join reg in db.Registrations on st.StudentId equals reg.StudentId
                               where (reg.Status== 0)
                               select new
                               {
                                   Name=/.../
                                   Address = /.../ }

然后将其加载到您的网格视图中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-01
    • 2012-12-05
    • 1970-01-01
    • 1970-01-01
    • 2011-10-05
    • 1970-01-01
    相关资源
    最近更新 更多