在 Asp.Net c# 中更新 gridview
Posted
技术标签:
【中文标题】在 Asp.Net c# 中更新 gridview【英文标题】:Update gridview in Asp.Net c# 【发布时间】: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 消息时,该行应该从网格视图中删除,但它不起作用,除非我刷新页面 【参考方案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 = /.../
然后将其加载到您的网格视图中。
【讨论】:
以上是关于在 Asp.Net c# 中更新 gridview的主要内容,如果未能解决你的问题,请参考以下文章
绑定 C#、ASP.net 后在 gridview 中添加新行
如何在 c# ASP.NET 中使用 GridView_RowCommand 事件从 GridView 获取图像
asp.net c#在gridview添加dropdownlist