把数据库里的东西,格式化成XML。配合相应的XSL,就可以成为特定的格式

解决方案 »

  1.   

    Proyang(小过) 的方法似乎还可以,给个小例子先吧!
      

  2.   

    取数据库的内容保存到xml文件,再用JS从xml文件中取出
      

  3.   

    SQL+C#+XML+ASP.NET+ADO.NET+HTTP行吗楼主???
      

  4.   

    数据库里格式为XML配合相应的XSL,有信箱吗?我可以发个相似的例子你
      

  5.   

    [email protected]
    谢谢 KentYu(潜水的鱼)
      

  6.   

    使用xml+xslt
    http://dotnet.aspx.cc/ShowDetail.aspx?id=YAWO3QGM-XD53-4D3D-OYBR-BLSBX5BNGAYM
      

  7.   

    我想用datalist嵌套datalist做,有多少层次,嵌套多少
      

  8.   

    csdn的做法似乎是静态的,看过去他的checkbox不是从数据库读出然后动态生成的!
      

  9.   

    把代码贴出来文件:RoleAdd.aspx
    <%@ Page language="c#" Codebehind="RoleAdd.aspx.cs" AutoEventWireup="false" Inherits="Matrix.Web.admin.RoleAdd" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
    <HEAD>
    <title>RoleAdd</title>
    <META http-equiv="Content-Type" content="text/html; charset=gb2312">
    <meta content="Microsoft Visual Studio .NET 7.1" 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">
    </HEAD>
    <body MS_POSITIONING="GridLayout">
    <form id="Form1" method="post" runat="server">
    <FONT face="宋体">
    <TABLE id="Table1" style="Z-INDEX: 101; LEFT: 0px; WIDTH: 750px; POSITION: absolute; TOP: 16px; HEIGHT: 550px"
    cellSpacing="1" cellPadding="1" border="0">
    <TR>
    <TD style="HEIGHT: 150px">
    <table borderColorDark="#ffffff" width="100%" borderColorLight="#330099" border="1">
    <tr>
    <font color="#000099"><b>角色基本信息</b></font></tr>
    <tr>
    <td width="13%" bgColor="#330099"><font style="FONT-SIZE: 10pt; COLOR: #ffffff; FONT-FAMILY: 宋体">分类编号</font></td>
    <td style="WIDTH: 223px"><asp:label id="CLASS_ID" runat="server"></asp:label></td>
    <td width="13%" bgColor="#330099"><font style="FONT-SIZE: 10pt; COLOR: #ffffff; FONT-FAMILY: 宋体">子类编号</font></td>
    <td><asp:label id="SUB_CLASS" runat="server"></asp:label></td>
    </tr>
    <tr>
    <td width="13%" bgColor="#330099"><font style="FONT-SIZE: 10pt; COLOR: #ffffff; FONT-FAMILY: 宋体">代码</font></td>
    <td style="WIDTH: 223px"><asp:label id="CODE" runat="server"></asp:label></td>
    <td width="13%" bgColor="#330099"><font style="FONT-SIZE: 10pt; COLOR: #ffffff; FONT-FAMILY: 宋体">名称</font></td>
    <td><asp:label id="NAME" runat="server"></asp:label></td>
    </tr>
    </table>
    </TD>
    </TR>
    <TR>
    <TD>
    <table height="400" width="100%">
    <tr height="20">
    <td><font color="#000099"><b>角色权限设置</b></font></td>
    </tr>
    <tr height="380">
    <td>
    <asp:datalist id="PurviewSetLst" Runat="server">
    <ItemTemplate>
    <input type="checkbox" name="SelItem" value='<%# DataBinder.Eval(Container, "DataItem.FUNCTIONID") %>' <%# DataBinder.Eval(Container, "DataItem.SPARE_MES") %> ><%# DataBinder.Eval(Container, "DataItem.FUNCTIONNAME") %>
    </ItemTemplate>
    </asp:datalist>
    <asp:Label id="Label1" runat="server">Label</asp:Label></td>
    </tr>
    </table>
    </TD>
    </TR>
    <tr>
    <td>
    <table width="100%" align="center">
    <tr align="center">
    <td align="center"><asp:button id="btnSave" runat="server" Text="保存"></asp:button><asp:button id="btnAbnegate" runat="server" Text="放弃"></asp:button><asp:button id="btnBack" runat="server" Text="返回"></asp:button></td>
    </tr>
    </table>
    </td>
    </tr>
    </TABLE>
    </FONT>
    </form>
    </body>
    </HTML>
      

  10.   

    文件:RoleAdd.aspx.cs
    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 Matrix.BusinessFacade;
    using Matrix.DataAccess;
    using Matrix.DataAccess.DALFactory;
    using Matrix.DataAccess.IDAL;namespace Matrix.Web.admin
    {
    /// <summary>
    /// RoleAdd 的摘要说明。
    /// </summary>
    public class RoleAdd : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.Label CLASS_ID;
    protected System.Web.UI.WebControls.Label SUB_CLASS;
    protected System.Web.UI.WebControls.Label CODE;
    protected System.Web.UI.WebControls.Label NAME;
    protected System.Web.UI.WebControls.Button btnSave;
    protected System.Web.UI.WebControls.Button btnAbnegate;
    protected System.Web.UI.WebControls.Button btnBack;
    protected System.Web.UI.WebControls.Label Label1;
    protected System.Web.UI.WebControls.Label Label2;
    protected System.Web.UI.WebControls.DataList PurviewSetLst;

    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    CLASS_ID.Text = Request.QueryString["CLASS_ID"];
    CODE.Text = Request.QueryString["CODE"];
    SUB_CLASS.Text = Request.QueryString["SUB_CLASS"];
    NAME.Text = Request.QueryString["NAME"];
    SysFuncSystem sfs = new SysFuncSystem();
    DataSet ds = sfs.GetFuncTreeByPurviewForSet(CODE.Text);
    PurviewSetLst.DataSource = ds;
    PurviewSetLst.DataBind();

    } #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.btnSave.Click += new System.EventHandler(this.btnSave_Click);
    this.btnAbnegate.Click += new System.EventHandler(this.btnAbnegate_Click);
    this.btnBack.Click += new System.EventHandler(this.btnBack_Click);
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion private void btnBack_Click(object sender, System.EventArgs e)
    {
    Response.Redirect("RoleManage.aspx");
    } private void btnSave_Click(object sender, System.EventArgs e)
    {
    string strItem = Request.Form["SelItem"];
    SysFuncSystem sfs = new SysFuncSystem();
    sfs.SetFuncTreeByPurviewForSet(CODE.Text,strItem);
    DataSet ds = sfs.GetFuncTreeByPurviewForSet(CODE.Text);
    PurviewSetLst.DataSource = ds;
    PurviewSetLst.DataBind();
    } private void btnAbnegate_Click(object sender, System.EventArgs e)
    {

    }
    }
    }
      

  11.   

    问题是 <ItemTemplate>
    <input type="checkbox" name="SelItem" value='<%# DataBinder.Eval(Container, "DataItem.FUNCTIONID") %>' <%# DataBinder.Eval(Container, "DataItem.SPARE_MES") %> ><%# DataBinder.Eval(Container, "DataItem.FUNCTIONNAME") %>
    </ItemTemplate>
    根本无法区分大类和子类,那么想做勾大类则子类全选的效果就做不成了
      

  12.   

    读没问题,是用递归建的,问题是我无法在页面生成后加以区分,因为我出的checkbox没有id,我无法对它们进行控制
      

  13.   

    我改成<input type="checkbox" name="SelItem" id='<%# DataBinder.Eval(Container, "DataItem.FUNCTIONID") %>' value='<%# DataBinder.Eval(Container, "DataItem.FUNCTIONID") %>' <%# DataBinder.Eval(Container, "DataItem.SPARE_MES") %> ><%# DataBinder.Eval(Container, "DataItem.FUNCTIONNAME") %>
    <table id="PurviewSetLst" cellspacing="0" border="0" style="border-collapse:collapse;">
    <tr><td><input type="checkbox" name="SelItem" id='m00' value='m00' Checked >Matrix Basic Edition</td></tr>
    <tr><td><input type="checkbox" name="SelItem" id='m0001' value='m0001' Checked >患者基本信息收集</td></tr>
    <tr><td><input type="checkbox" name="SelItem" id='m0002' value='m0002' Checked >确诊前诊疗信息收集</td></tr>
    <tr><td><input type="checkbox" name="SelItem" id='m0003' value='m0003' Checked >功能诊断与治疗</td></tr>
    <tr><td><input type="checkbox" name="SelItem" id='m0004' value='m0004' Checked >病因诊断与治疗</td></tr>
    <tr><td><input type="checkbox" name="SelItem" id='m01' value='m01' Checked >Matrix Advanced Edition</td></tr>
    <tr><td><input type="checkbox" name="SelItem" id='m0101' value='m0101' Checked >患者基本信息收集(扩充)</td></tr>
    <tr><td><input type="checkbox" name="SelItem" id='m0102' value='m0102'  >确诊前诊疗信息收集(扩充)</td></tr>
    <tr><td><input type="checkbox" name="SelItem" id='m0103' value='m0103'  >功能诊断与治疗(扩充)</td></tr>
    <tr><td><input type="checkbox" name="SelItem" id='m0104' value='m0104'  >病因诊断与治疗(扩充)</td></tr>
    </table>三位的是父层,五位的子层
      

  14.   

    可以用类似的方法循环动态生成,你看看能不能参考string body="";
    body=body+"<table cellPadding=3 cellSpacing=1 align=center width=100%>";
    for(i=count;i<total;i++)
    {   string query3="select * from userinfo where account='"+das.Tables["reply"].Rows[i]["account"].ToString()+"'";
    OleDbDataAdapter dp=new OleDbDataAdapter(query3,conn);
    DataSet dst=new DataSet();
    dp.Fill(dst,"userinfo");
    body=body+"<tr bgcolor=#f2f8ff><td width=30% height=145 valign=top><img src="+dst.Tables["userinfo"].Rows[0]["face"].ToString()+" border=0><br>";
    body=body+"&nbsp;&nbsp;用户名:&nbsp;&nbsp;"+das.Tables["reply"].Rows[i]["account"].ToString()+"<br>";
    body=body+"&nbsp;&nbsp;头衔:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"+dst.Tables["userinfo"].Rows[0]["rank"].ToString()+"<br>";
    body=body+"&nbsp;&nbsp;等级:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"+dst.Tables["userinfo"].Rows[0]["grade"].ToString()+"<br>";
    body=body+"&nbsp;&nbsp;经验值:&nbsp;&nbsp;"+dst.Tables["userinfo"].Rows[0]["gold"].ToString()+"<br>";
    body=body+"&nbsp;&nbsp;来自:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"+dst.Tables["userinfo"].Rows[0]["comefrom"].ToString()+"<br>";
    body=body+"&nbsp;&nbsp;总发贴:&nbsp;&nbsp;<br>";
    body=body+"&nbsp;&nbsp;注册:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"+dst.Tables["userinfo"].Rows[0]["addtime"]+"<br></td>";
    body=body+"<td width=70% valign=top height=145 bgcolor=#f2f8ff><br><hr width=100% color=#0099cc size=1><br>"+das.Tables["reply"].Rows[i]["content"].ToString()+"";
    body=body+"<br><br><br><br><hr width=100% size=1 color=#0099cc>";
    body=body+"</td></tr>";
                    dst.Clear();
    dst.Dispose();
    }
      

  15.   

    我如果改成服务器端控件
    <asp:CheckBox ID='<%# DataBinder.Eval(Container.DataItem,"FUNCTIONID") %>' Text='<%# DataBinder.Eval(Container.DataItem,"FUNCTIONNAME") %>' Runat=server></asp:CheckBox>就会报这样的错误
    “/Web”应用程序中的服务器错误。
    --------------------------------------------------------------------------------分析器错误 
    说明: 在分析向此请求提供服务所需资源时出错。请检查下列特定分析错误详细信息并适当地修改源文件。 分析器错误信息: “<%# DataBinder.Eval(Container.DataItem,"FUNCTIONID") %>”不是有效标识符。源错误: 
    行 46:  <ItemTemplate>
    行 47: 
    行 48:  <asp:CheckBox ID='<%# DataBinder.Eval(Container.DataItem,"FUNCTIONID") %>' Text='<%# DataBinder.Eval(Container.DataItem,"FUNCTIONNAME") %>' Runat=server></asp:CheckBox>
    行 49: 
    行 50:  </ItemTemplate>
     源文件: c:\inetpub\wwwroot\Web\admin\RoleAdd.aspx    行: 48