给你个例子:
<%@ Register TagPrefix="dbwc" Namespace="DBauer.Web.UI.WebControls" Assembly="DBauer.Web.UI.WebControls.HierarGrid" %>
<%@ Page language="c#" Codebehind="edituser.aspx.cs" AutoEventWireup="false" Inherits="document.admin.edituser" %>
<%@ Register TagPrefix="cc1" Namespace="FredCK" Assembly="FredCK.FCKeditor" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>adduser</title>
<meta content="Microsoft Visual Studio 7.0" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
<LINK href="../e[1].css" type="text/css" rel="stylesheet">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="adduser" method="post" runat="server">
<TABLE id="Table1" style="Z-INDEX: 101; LEFT: 8px; POSITION: absolute; TOP: 8px" cellSpacing="1" cellPadding="1" width="100%" align="center" border="0">
<TR>
<TD><dbwc:hierargrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 8px; POSITION: absolute; TOP: 8px" runat="server" Font-Size="80%" AutoGenerateColumns="False" CellPadding="4" BackColor="SteelBlue" BorderWidth="1px" BorderStyle="None" BorderColor="#3366CC" Width="100%" Font-Names="宋体" TemplateDataMode="Table" CellSpacing="1" GridLines="None" ForeColor="Black">
<SelectedItemStyle Font-Bold="True" ForeColor="#CCFF99" BackColor="#009999"></SelectedItemStyle>
<EditItemStyle BackColor="#CCCCCC"></EditItemStyle>
<ItemStyle ForeColor="#003399" BackColor="White"></ItemStyle>
<HeaderStyle Font-Bold="True" ForeColor="#CCCCFF" BackColor="#003399"></HeaderStyle>
<FooterStyle ForeColor="#003399" BackColor="#99CCCC"></FooterStyle>
<Columns>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" CancelText="取消" EditText="编辑">
<HeaderStyle Width="2%"></HeaderStyle>
</asp:EditCommandColumn>
<asp:BoundColumn DataField="userid" ReadOnly="True" HeaderText="编号"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="用户名称">
<ItemTemplate>
<asp:Label id=Label1 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.name") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id=nameTxt runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.name") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="密码">
<ItemTemplate>
<asp:Label id=Label2 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.password") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id=passTxt runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.password") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="是否超级用户">
<ItemTemplate>
<asp:CheckBox id=CheckBox1 runat="server" Enabled="False" Checked='<%# DataBinder.Eval(Container, "DataItem.admin") %>'>
</asp:CheckBox>
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox id=adminChk runat="server" Checked='<%# DataBinder.Eval(Container, "DataItem.admin") %>'>
</asp:CheckBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:ButtonColumn Text="删除" CommandName="Delete"></asp:ButtonColumn>
</Columns>
<PagerStyle HorizontalAlign="Left" ForeColor="#003399" BackColor="#99CCCC" Mode="NumericPages"></PagerStyle>
</dbwc:hierargrid></TD>
</TR>
</TABLE>
</form>
</body>
</HTML>cs如下

解决方案 »

  1.   


    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using DAL;
    using Model;
    using System.Web.Security ;namespace document.admin
    {
    /// <summary>
    /// adduser 的摘要说明。
    /// </summary>
    public class edituser : System.Web.UI.Page
    {
    protected DBauer.Web.UI.WebControls.HierarGrid DataGrid1;

    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    if (!User.Identity.IsAuthenticated )
    {
    Response.Write("<script>alert('无效,请重新登录!');</script>");
    return;
    }
    int userid=Convert.ToInt32(User.Identity.Name);
    if (new DRight().UserRight(userid)==false)
    {
    Response.Write("<script>alert('无管理员权限!');</script>");
    return;
    }
    if (!Page.IsPostBack)
    {
    bindgrid();
    } } private void bindgrid()
    {
    new DUser().UserRightEdit();
     
    DataSet ds=new DUser().GetUserDs();

      DataRow row=ds.Tables[0].NewRow();

    row["name"]="";
    row["admin"]=0;
    ds.Tables[0].Rows.InsertAt(row,0); //数据源是table,区别于singlerow 使用DataMember
    DataGrid1.DataSource = ds ;
    DataGrid1.DataMember ="user";
    DataGrid1.DataKeyField="userid"; 
    DataGrid1.DataBind();
    } #region Web Form Designer generated code
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.DataGrid1.ItemCreated += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_ItemCreated);
    this.DataGrid1.UpdateCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_UpdateCommand);
    this.DataGrid1.TemplateSelection += new DBauer.Web.UI.WebControls.HierarGridTemplateSelectionEventHandler(this.DataGrid1_TemplateSelection);
    this.DataGrid1.DeleteCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_DeleteCommand);
    this.DataGrid1.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_EditCommand);
    this.DataGrid1.CancelCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_CancelCommand);
    this.DataGrid1.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_ItemDataBound);
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion private void DataGrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if (e.Item.ItemIndex ==0)
    {
    LinkButton lb=(LinkButton)(e.Item.Cells[1].Controls[0]);
    if (lb.Text=="编辑")
    {
    lb.Text="新增";
    }
    else if (lb.Text=="更新")
    {
    lb.Text="更新";
    }
    } if ((e.Item.ItemType==ListItemType.EditItem) || (e.Item.ItemType==ListItemType.AlternatingItem )
    || (e.Item.ItemType ==ListItemType.Item ))
    {
    LinkButton dlb=(LinkButton)(e.Item.Cells[6].Controls[0]);
    dlb.Attributes.Add("onclick","return confirm('您真的要删除此行吗?');");
    }

    } private void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    DataGrid1.EditItemIndex =e.Item.ItemIndex ;
    bindgrid();
    } private void DataGrid1_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    DataGrid1.EditItemIndex =-1;
    bindgrid();

    } private void DataGrid1_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    int userid;
    userid=(int)DataGrid1.DataKeys[e.Item.ItemIndex];

    if (new DUser().Delete(userid)==true)
    bindgrid();

    } private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    string name,password;
    int userid;
    bool admin;


    name=((TextBox)e.Item.FindControl("nameTxt")).Text;
    password=((TextBox)e.Item.FindControl("passTxt")).Text;
    admin=((CheckBox)e.Item.FindControl("adminChk")).Checked ; if (e.Item.ItemIndex==0)
    {
    new DUser().Insert(new UserInfo(0,name,password,admin));

    }
    else
    {
    userid=(int)DataGrid1.DataKeys[e.Item.ItemIndex];
    new DUser().Update(new UserInfo(userid,name,password,admin));
    } DataGrid1.EditItemIndex =-1;
    bindgrid();
    } private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if ((e.Item.ItemType==ListItemType.Item) || (e.Item.ItemType==ListItemType.AlternatingItem ))
    {
    e.Item.Attributes.Add("onmouseover", "this.style.backgroundColor='#f5f5dc'");
    e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor='white'");
    } if (e.Item.ItemType==ListItemType.EditItem)
    {
    //e.Item.BackColor = System.Drawing.Color.CadetBlue;
    }
    } private void DataGrid1_TemplateSelection(object sender, DBauer.Web.UI.WebControls.HierarGridTemplateSelectionEventArgs e)
    {
     e.TemplateFilename =  e.Row.Table.TableName + ".ascx";
    }
    }
    }
    <%@ Register TagPrefix="cc1" Namespace="FredCK" Assembly="FredCK.FCKeditor" %>
    <%@ Control Language="c#" AutoEventWireup="false" Codebehind="template.ascx.cs" Inherits="document.admin.template" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>
    <TABLE id="Table1" cellSpacing="0" cellPadding="0" width="100%" border="0" height="300">
    <TR>
    <TD vAlign="top" align="middle">
    <cc1:FCKeditor id="FCKeditor1" runat="server" BasePath="../FCKeditor/" Height="280px" Width="100%"></cc1:FCKeditor>
    <asp:Panel id="Panel1" runat="server" Width="123px" ForeColor="White">Panel</asp:Panel></TD>
    </TR>
    </TABLE>
    <FONT face="宋体"></FONT>
    namespace document.admin
    {
    using System;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using DAL;
    using Model; /// <summary>
    /// template 的摘要说明。
    /// </summary>
    public abstract class template : System.Web.UI.UserControl
    {
    protected FredCK.FCKeditor FCKeditor1;
    protected System.Web.UI.WebControls.Panel Panel1;

    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    Button bt=new Button();
    bt.Text="保存模板";
    bt.Click +=new System.EventHandler(this.Button_Click);
    Panel1.Controls.Add(bt);
    } #region Web Form Designer generated code
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// 设计器支持所需的方法 - 不要使用
    /// 代码编辑器修改此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {
    this.Load += new System.EventHandler(this.Page_Load);
    this.DataBinding += new System.EventHandler(this.Page_DataBinding); }
    #endregion private void Page_DataBinding(object sender, System.EventArgs e)
    {
    DataRowView drv = (DataRowView) ((DataGridItem) this.BindingContainer).DataItem;
    ViewState["templateid"] =(int)drv["templateid"];
    FCKeditor1.Value =new DTemplate().GetTemplateInfo((int)ViewState["templateid"]).content.ToString() ; } private void Button_Click(object sender, System.EventArgs e)
    {
    string content,name;
    content=FCKeditor1.Value.ToString() ;
    name=new DTemplate().GetTemplateInfo((int)ViewState["templateid"]).name.ToString() ;
    new DTemplate().Update(new TemplateInfo((int)ViewState["templateid"],name,content));

    }


    }
    }