Aspx页
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>管理者画面</title>
</head>
<body >
<form id="form_Admin" runat="server">
<asp:GridView ID="UserAccounts" runat="server" CaptionAlign="Top" CellPadding="4" ForeColor="#333333" AutoGenerateColumns="False"
Width="514px" OnRowDeleting="UserAccounts_RowDeleting">
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<Columns>
<asp:BoundField HeaderText="番号" DataField="番号" SortExpression="番号"/>
<asp:BoundField HeaderText="アカウントID" DataField="アカウントID" SortExpression="アカウントID"/>
<asp:BoundField HeaderText="ユーザー名" DataField="ユーザー名" SortExpression="ユーザー名"/>
<asp:BoundField HeaderText="メールアドレス" DataField="メールアドレス" SortExpression="メールアドレス"/>
<asp:BoundField HeaderText="ユーザー権限" DataField="ユーザー権限" SortExpression="ユーザー権限"/>
<asp:CommandField ButtonType="Image" DeleteImageUrl="~/Img/AccountMain_Delete.jpg"
ShowDeleteButton="True" />
</Columns>
<RowStyle BackColor="#EFF3FB" Font-Size="Smaller" />
<EditRowStyle BackColor="#2461BF" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<PagerStyle BackColor="#2461BF" ForeColor="Transparent" HorizontalAlign="Center" />
<HeaderStyle BackColor="#CCCCCC" BorderStyle="None" Font-Bold="True" ForeColor="#333333" Font-Size="Smaller" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
</form>
</body>
</html>CS页
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;public partial class AdminTest : System.Web.UI.Page
{
DataTable dt;
UserObject userobj;
protected void Page_Load(object sender, EventArgs e)
{
if (Session["UserID"] == null)
{
Response.Redirect("Login.aspx");
}
if (!IsPostBack)
{
this.bindData();
}
}
private void bindData()
{
int accCnt;
dt = new DataTable("UserAccount");
accCnt = UserObject.tempUserArrLst.Count;
DataRow dr = null; if (accCnt < 0)
{
return;
} dt.Columns.Add("番号", Type.GetType("System.String"));
dt.Columns.Add("アカウントID", Type.GetType("System.String"));
dt.Columns.Add("ユーザー名", Type.GetType("System.String"));
dt.Columns.Add("メールアドレス", Type.GetType("System.String"));
dt.Columns.Add("ユーザー権限", Type.GetType("System.String"));
for (int cnt = 0; cnt < accCnt; cnt++)
{ dr = dt.NewRow();
userobj = (UserObject)UserObject.tempUserArrLst[cnt];
dr["番号"] = userobj.getUserNumber();
dr["アカウントID"] = userobj.getUserID();
dr["ユーザー名"] = userobj.getUserName();
dr["メールアドレス"] = userobj.getUserMailAddr();
if (userobj.getUserAuthority().Equals("Admin"))
{
dr["ユーザー権限"] = "管理者";
}
else
{
dr["ユーザー権限"] = "一般ユーザー";
} dt.Rows.Add(dr); } this.UserAccounts.DataSource = dt;
this.UserAccounts.DataBind();
}
protected void UserAccounts_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
UserObject.tempUserArrLst.RemoveAt(e.RowIndex);
this.bindData();
}}今天是在被搞得头大了。不知道什么原因,每次点击GridView的删除按钮时,会走两便PageLoad和RowDeleting,也就是点一次删除按钮会删掉两行数据,这样点第二次的时候Index就会出问题了。也不是每次都出问题,有40%的几率会正常删除。不知道各位有没有碰到过这类问题。郁闷死了。
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>管理者画面</title>
</head>
<body >
<form id="form_Admin" runat="server">
<asp:GridView ID="UserAccounts" runat="server" CaptionAlign="Top" CellPadding="4" ForeColor="#333333" AutoGenerateColumns="False"
Width="514px" OnRowDeleting="UserAccounts_RowDeleting">
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<Columns>
<asp:BoundField HeaderText="番号" DataField="番号" SortExpression="番号"/>
<asp:BoundField HeaderText="アカウントID" DataField="アカウントID" SortExpression="アカウントID"/>
<asp:BoundField HeaderText="ユーザー名" DataField="ユーザー名" SortExpression="ユーザー名"/>
<asp:BoundField HeaderText="メールアドレス" DataField="メールアドレス" SortExpression="メールアドレス"/>
<asp:BoundField HeaderText="ユーザー権限" DataField="ユーザー権限" SortExpression="ユーザー権限"/>
<asp:CommandField ButtonType="Image" DeleteImageUrl="~/Img/AccountMain_Delete.jpg"
ShowDeleteButton="True" />
</Columns>
<RowStyle BackColor="#EFF3FB" Font-Size="Smaller" />
<EditRowStyle BackColor="#2461BF" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<PagerStyle BackColor="#2461BF" ForeColor="Transparent" HorizontalAlign="Center" />
<HeaderStyle BackColor="#CCCCCC" BorderStyle="None" Font-Bold="True" ForeColor="#333333" Font-Size="Smaller" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
</form>
</body>
</html>CS页
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;public partial class AdminTest : System.Web.UI.Page
{
DataTable dt;
UserObject userobj;
protected void Page_Load(object sender, EventArgs e)
{
if (Session["UserID"] == null)
{
Response.Redirect("Login.aspx");
}
if (!IsPostBack)
{
this.bindData();
}
}
private void bindData()
{
int accCnt;
dt = new DataTable("UserAccount");
accCnt = UserObject.tempUserArrLst.Count;
DataRow dr = null; if (accCnt < 0)
{
return;
} dt.Columns.Add("番号", Type.GetType("System.String"));
dt.Columns.Add("アカウントID", Type.GetType("System.String"));
dt.Columns.Add("ユーザー名", Type.GetType("System.String"));
dt.Columns.Add("メールアドレス", Type.GetType("System.String"));
dt.Columns.Add("ユーザー権限", Type.GetType("System.String"));
for (int cnt = 0; cnt < accCnt; cnt++)
{ dr = dt.NewRow();
userobj = (UserObject)UserObject.tempUserArrLst[cnt];
dr["番号"] = userobj.getUserNumber();
dr["アカウントID"] = userobj.getUserID();
dr["ユーザー名"] = userobj.getUserName();
dr["メールアドレス"] = userobj.getUserMailAddr();
if (userobj.getUserAuthority().Equals("Admin"))
{
dr["ユーザー権限"] = "管理者";
}
else
{
dr["ユーザー権限"] = "一般ユーザー";
} dt.Rows.Add(dr); } this.UserAccounts.DataSource = dt;
this.UserAccounts.DataBind();
}
protected void UserAccounts_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
UserObject.tempUserArrLst.RemoveAt(e.RowIndex);
this.bindData();
}}今天是在被搞得头大了。不知道什么原因,每次点击GridView的删除按钮时,会走两便PageLoad和RowDeleting,也就是点一次删除按钮会删掉两行数据,这样点第二次的时候Index就会出问题了。也不是每次都出问题,有40%的几率会正常删除。不知道各位有没有碰到过这类问题。郁闷死了。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货