2017-08-09 24 views
0

私はC#を使用しています。グリッドビュー内に2つのボタンがあり、受け入れて拒否します。Asp.Netでグリッドビューを更新するC#

管理者が[承認]ボタンをクリックすると、確認メッセージが表示されます。

[OK]をクリックすると、データベースのリクエストステータスが変更され、[OK]をクリックして承認済みの生徒を無効にした後で、グリッドビューを更新します。

は、これは私のコードですが、それは「OK」を表示するか、またはJavaスクリプト

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); 

     } 
    } 



} 
+0

動作していない部分と期待している部分はどちらですか?いくつかの洞察を得るためにさらに説明する。 –

+0

OKメッセージをクリックするとグリッドビューから行が削除されますが、ページを更新する以外は動作しません –

答えて

2

グリッドビューを読み込む前に、データベースから要求ステータスを確認できます。たとえば、

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 = /.../ } 

を入力し、グリッドビューに読み込みます。

+0

ありがとう、私はあなたの答えとその作業を使用しました! –

関連する問題