如何将datagrid(有模板列)的编辑,删除事件后置到代码文件.

ccbnhzxy 2003-10-16 07:32:11
在电子版ASP高级编程中有用datagrid编辑删除记录的例子,但是是在同一aspx中,
我想把编辑删除的代码后置到aspx.cs的文件中以供编译成.dll文件用,故在此请教
各位高手.
...全文
27 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
houlinghouling 2003-10-20
  • 打赏
  • 举报
回复
给一个例子你看一看了:
.aspx
<asp:datagrid id="dgrConfirm" tabIndex="3" runat="server" AutoGenerateColumns="False" CellPadding="0"
BorderWidth="0px" BorderStyle="None" OnDeleteCommand="OnDelete" OnCancelCommand="OnCancel"
OnEditCommand="OnEdit" OnUpdateCommand="OnUpdate" AllowPaging="True" OnPageIndexChanged="PageIndexChanged"
OnItemDataBound="OnItemDataBound" CellSpacing="1" Width="100%" Height="100%">
<ItemStyle CssClass="login-td03"></ItemStyle>
<HeaderStyle Font-Bold="True" CssClass="login-title01"></HeaderStyle>
<FooterStyle Font-Bold="True" CssClass="login-title01"></FooterStyle>
<Columns>
<asp:BoundColumn DataField="yhm" ReadOnly="True" HeaderText="用户名">
<ItemStyle Width="120px"></ItemStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="zsxm" ReadOnly="True" HeaderText="真实姓名">
<ItemStyle Width="200px"></ItemStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="xb" ReadOnly="True" HeaderText="性别"></asp:BoundColumn>
<asp:BoundColumn DataField="dzyj" ReadOnly="True" HeaderText="电子邮件"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="状态">
<ItemTemplate>
<%# DataBinder.Eval(Container,"DataItem.zt")%>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtState" Runat =server Width="30" Text='<%# DataBinder.Eval(Container,"DataItem.zt")%>' cssclass="login-input03">
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<ItemTemplate>
<asp:LinkButton ID="cmdEdit" Runat="server" CommandName="Edit" text="修改" CssClass="login-link01"></asp:LinkButton>
</ItemTemplate>
<EditItemTemplate>
<asp:LinkButton ID="cmdCancel" Runat="server" CommandName="Cancel" text="取消" CssClass="login-link01"></asp:LinkButton>
<asp:LinkButton id="cmdUpdate" Runat="server" CommandName="Update" text="更新" CssClass="login-link01"></asp:LinkButton>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<ItemTemplate>
<asp:LinkButton id="cmdDel" Runat="server" text="删除" CommandName="Delete" CssClass="login-link01"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle HorizontalAlign="Left" Mode="NumericPages" CssClass="login-title01"></PagerStyle>
</asp:datagrid>

.cs 文件:

//实现翻页
protected void PageIndexChanged(object sender, DataGridPageChangedEventArgs e)
{

DataSet ds =new DataSet();
ds=this.ReadTeacher();
this.dgrConfirm.CurrentPageIndex=e.NewPageIndex;
this.dgrConfirm.DataSource=ds;
this.dgrConfirm.DataBind ();
}
//修改数据
protected void OnEdit(object send ,DataGridCommandEventArgs e)
{
DataSet ds =new DataSet();
ds=this.ReadTeacher();
this.dgrConfirm.EditItemIndex=Convert.ToInt32(e.Item.ItemIndex );
this.dgrConfirm.DataSource=ds;
this.dgrConfirm.DataBind();
}
//更新数据
protected void OnUpdate(object send ,DataGridCommandEventArgs e)
{


SqlConnection sqlConn=new SqlConnection(strConn);
sqlConn.Open();
DataSet ds =new DataSet();
ds=this.ReadTeacher();
int row=Convert.ToInt32 (this.dgrConfirm.CurrentPageIndex)*10+Convert.ToInt32(e.Item.ItemIndex );
TextBox EditText=null;
EditText=(TextBox)e.Item.FindControl("txtState");
string strUserName=ds.Tables[0].Rows[row]["yhm"].ToString();
string strUpdate="Update jcjsqd set zt="+Convert.ToInt32(EditText.Text)+" where yhm='"+strUserName+"'";
SqlCommand sqlComm=new SqlCommand(strUpdate,sqlConn);
sqlComm.ExecuteNonQuery();
sqlConn.Close();
ds=this.ReadTeacher();
this.dgrConfirm.EditItemIndex=-1;
this.dgrConfirm.DataSource=ds;
this.dgrConfirm.DataBind();
}
//取消操作
protected void OnCancel (object send ,DataGridCommandEventArgs e)
{
this.dgrConfirm.EditItemIndex=-1;
DataSet ds =new DataSet();
ds=this.ReadTeacher();
this.dgrConfirm.DataSource=ds;
this.dgrConfirm.DataBind();
}
//删除记录
protected void OnDelete(object send ,DataGridCommandEventArgs e)
{
DataSet ds =new DataSet();
db=new UserDB();
ds=this.ReadTeacher();

SqlConnection sqlConn=new SqlConnection(strConn);
sqlConn.Open();

int row =Convert.ToInt32 (this.dgrConfirm.CurrentPageIndex)*10+Convert.ToInt32(e.Item.ItemIndex );
int nTeacherID=db.ReadTeacherID(ds.Tables[0].Rows[row]["yhm"].ToString ());
string strUserName=ds.Tables[0].Rows [row]["zsxm"].ToString ();
int nUserRoles=db.GetRoles( strUserName);
if (nUserRoles==4)
{
SqlCommand sqlCommand = new SqlCommand("msp_scjs", sqlConn);
sqlCommand.CommandType = CommandType.StoredProcedure;
sqlCommand.Parameters.Add("@teacherid", SqlDbType.Int,4);
sqlCommand.Parameters["@teacherid"].Value = nTeacherID;
sqlCommand.ExecuteNonQuery();
ds=this.ReadTeacher();
this.dgrConfirm.DataSource=ds;
this.dgrConfirm.DataBind ();
sqlConn.Close ();
}

}
//提示确定删除对话框
protected void OnItemDataBound(object sender, DataGridItemEventArgs e)
{

if (e.Item.ItemType ==ListItemType.Item || e.Item.ItemType ==ListItemType.AlternatingItem )
{
db=new UserDB();
DataSet ds =new DataSet();

LbDelete=(LinkButton)(e.Item.FindControl ("cmdDel"));
int row =Convert.ToInt32 (this.dgrConfirm.CurrentPageIndex)*10+Convert.ToInt32(e.Item.ItemIndex );

SqlConnection sqlConn=new SqlConnection(strConn);
string strSQL="select zsxm from jcjsqd ";
SqlDataAdapter sqlAdapter =new SqlDataAdapter(strSQL,sqlConn);
sqlAdapter.Fill(ds);

string strUserName=ds.Tables[0].Rows[row]["zsxm"].ToString();
int nUserRoles=db.GetRoles( strUserName);

if (nUserRoles==2)
{
LbDelete.Attributes.Add("onclick", "return alert('该用户是课程管理员不可以删除!');");
}
else if (nUserRoles==3)
{
LbDelete.Attributes.Add("onclick", "return alert('该用户是章管理员不可以删除?');");
}
else if (nUserRoles==4)
{
LbDelete.Attributes.Add("onclick", "return confirm('你确定要删除该条记录吗?');");
}


}
}
acewang 2003-10-17
  • 打赏
  • 举报
回复
http://xml.sz.luohuedu.net/xml/ShowDetail.asp?id=8ADE535F-AD40-4DE3-A962-A64B4FAF12C4
ccbnhzxy 2003-10-17
  • 打赏
  • 举报
回复
up

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧