ASP.NET 常用功能收藏

简介: 1、两个Repeater嵌套实现动态菜单今天在实现一个增强web项目可扩展性的一个功能,把以前的静态菜单改成了动态的扩展、可维护的菜单页面代码 ...

1、两个Repeater嵌套实现动态菜单

今天在实现一个增强web项目可扩展性的一个功能,把以前的静态菜单改成了动态的扩展、可维护的菜单

页面代码

<asp:Repeater ID="Repeater1" runat="server"  onitemdatabound="Repeater1_ItemDataBound">
        <ItemTemplate>
         <h1 class="type"><a href="javascript:void(0)"><%# DataBinder.Eval(Container.DataItem, "MT_name")%></a></h1>
            <asp:Repeater ID="Repeater2" runat="server">
            <HeaderTemplate> 
            <div class="content">
            <table width="100%" border="0" cellspacing="0" cellpadding="0">
            <tr>
              <td><img src="images/menu_topline.gif" width="182" height="5" /></td>
            </tr>
          </table>
        <ul class="MM">
            </HeaderTemplate>
            <ItemTemplate>
             <li><a href="<%# DataBinder.Eval(Container.DataItem, "MI_page")%>" target="main"><%# DataBinder.Eval(Container.DataItem, "MI_name")%></a></li>
            </ItemTemplate> 
            <FooterTemplate>
            </ul></div>
            </FooterTemplate>
            </asp:Repeater>
        </ItemTemplate>
</asp:Repeater>


 服务器端代码

public partial class left : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                string sql = "select MT_ID,MT_name from ModuleTopInfo";
                SqlDbHelper db = new SqlDbHelper();//SqlHelper类你懂得
                Repeater1.DataSource =db.ExecuteDataTable(sql);
                Repeater1.DataBind();
            }
        }

        protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                string id = ((DataRowView)e.Item.DataItem).Row["MT_ID"].ToString();
                Repeater rpt = (Repeater)e.Item.FindControl("Repeater2");
                string sql = "select MI_ID,MI_page,MI_name from ModuleInfo where MT_ID=@id";
                SqlParameter[] parameters = new SqlParameter[] {
                    new SqlParameter("@id",id)
                };
                SqlDbHelper db = new SqlDbHelper();
                DataTable dt = new DataTable();
                dt = db.ExecuteDataTable(sql,CommandType.Text,parameters);
                if (rpt != null)
                {
                    rpt.DataSource = dt;
                    rpt.DataBind();
                }
            }
        }


 实现效果截图


2、通过format输出带{}的字符


string s = string.Format("abc{{{0}}}{{{1}}}", "9999","123");
 Response.Write(s);

//输出

abc{9999}{123}


3、弹出框样式

http://www.cnblogs.com/zengxiangzhan/archive/2011/08/27/2155335.html


4、LINQ To XML增删改查

http://www.cnblogs.com/mingmingruyuedlut/archive/2011/01/27/1946239.html


5、C# WinForm下DataGridView绘制背景图

http://archive.cnblogs.com/a/2201983/


6、数据控件行选择事件

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            //当鼠标在某行,更改背景色
            e.Row.Attributes.Add("onmouseover", "color=this.style.backgroundColor;this.style.backgroundColor='#F9D79C'");
            //当鼠标离开,还原背景色
            e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=color");

            //鼠标变小手   ondblclick双击onClick单击
            e.Row.Attributes["style"] = "Cursor:hand";
            e.Row.Attributes.Add("onClick", "this");
            string nodenumber = GridView1.DataKeys[e.Row.RowIndex].Value.ToString();
            e.Row.Attributes.Add("onClick", "window.open('manage/AddNodeB.aspx?nodenumber=" + nodenumber + "');window.parent.top.opener = null;window.open('','_self');parent.top.window.close()");
        }
    }

数据库连接字符串:http://www.connectionstrings.com/


var zNodes =[{"name":"所用","id":"001","pid":"001",
 nodes:[{"name":"所用1","id":"0011","pid":"001111"}]},
 
{"name":"核计划","id":"002","pid":"002",
 nodes:[{"name":"核计划1","id":"0021","pid":"002"}]}],

---------------------------------------------------------------------
function showAllNode(thejson){
  var flag = false;// 当前元素是否是数组
  for(var e in thejson){

      alert("e:"+e);
      if(e=="parentNode")
            continue;
      for(var ex in thejson[e]){
             flag = true;
             break;
       }
      if(flag){
          showAllNode(thejson[e]);
       }else if(thejson[e]){
         alert(thejson[e]);

     }
   
   }
   if(!flag)
  {
      return;
  }
   
}



相关文章
|
10月前
|
Shell 网络安全 C#
一款 .NET 开源、功能强大的远程连接管理工具,支持 RDP、VNC、SSH 等多种主流协议!
一款 .NET 开源、功能强大的远程连接管理工具,支持 RDP、VNC、SSH 等多种主流协议!
345 4
|
8月前
|
缓存 开发框架 .NET
一个功能丰富的 .NET 工具库 XiHan.Framework.Utils
XiHan.Framework.Utils 是一个功能全面的 .NET 工具库,包含字符串处理、集合扩展、加密解密、分布式 ID、文件操作、缓存、线程、国际化等模块。设计上注重高内聚、低耦合,适用于各类 .NET 应用开发。支持 AES 加密、树形结构转换、分页过滤、日志输出等功能,提供简单易用的 API。可通过 NuGet 快速安装,源码开放,采用 MIT 协议。
301 56
|
人工智能 开发框架 .NET
.NET技术的强大功能:.NET技术的基础特性、在现代开发中的应用、以及它如何助力未来的软件开发。
.NET技术是软件开发领域的核心支柱,以其强大功能、灵活性及安全性广受认可。本文分三部分解析:基础特性如多语言支持、统一运行时环境;现代应用如企业级与Web开发、移动应用、云服务及游戏开发;以及未来趋势如性能优化、容器化、AI集成等,展望.NET在不断变化的技术环境中持续发展与创新。
544 4
|
Linux API C#
基于 .NET 开发的多功能流媒体管理控制平台
基于 .NET 开发的多功能流媒体管理控制平台
227 9
|
网络协议 C#
3款.NET开源、功能强大的通讯调试工具,效率提升利器!
3款.NET开源、功能强大的通讯调试工具,效率提升利器!
211 10
|
XML C# 数据格式
一个.NET开源、免费、功能强大的 PDF 处理工具
一个.NET开源、免费、功能强大的 PDF 处理工具
418 8
|
监控 前端开发 API
一款基于 .NET MVC 框架开发、功能全面的MES系统
一款基于 .NET MVC 框架开发、功能全面的MES系统
411 5
|
消息中间件 监控 数据可视化
基于.NET开源、功能强大且灵活的工作流引擎框架
基于.NET开源、功能强大且灵活的工作流引擎框架
443 3
|
XML 开发框架 .NET
.NET 9 中 LINQ 新增功能实操
.NET 9 中 LINQ 新增功能实操
160 0
|
网络协议 Unix Linux
精选2款C#/.NET开源且功能强大的网络通信框架
精选2款C#/.NET开源且功能强大的网络通信框架
523 0