问题有二:(1)如何传递特殊字符?(如<,>,<=)我是转换成汉字给传递到xsl里的
(2) 下面出现的数据中,前面4列是固定的,到出现等级后是动态的,
如何在xsl文件里面将等级这几列中加入input,其余列不需要加。
上代码:
连接数据库,查找数据,查找数据为:姓名 年龄 班次 比较 等级一 等级二 等级三。
xxx 12 1 < 90 80 70
xxx 11 2 <= 90 80 70
......
DataTable dt
其中,等级一,二,三不固定,也就是说,有可能有的班级只有等级一,等级二,无等级三。
Response.ContentType = "text/xml";
Response.Write("<?xml version=\"1.0\" encoding=\"GB2312\"?>\n");
Response.Write("<?xml-stylesheet type=\"text/xsl\"?>\n");
Response.Write("<NewDataSet>\n");
for (int i = 0; i < dt.Rows.Count; i++)
{
Response.Write("<Table>\n");
for (int j = 0; j < dt.Columns.Count; j++)
{
<!-- 问题(1)-->
switch (dt.Rows[i][j].ToString())
{
case "<":
dt.Rows[i][j] = "小于";
break;
case "<=":
dt.Rows[i][j] = "小于等于";
break;
case ">":
dt.Rows[i][j] = "大于";
break;
case ">=":
dt.Rows[i][j] = "大于等于";
break;
case "between":
dt.Rows[i][j] = "介于";
break;
default:
break;
}
lo_value = dt.Rows[i][j];
ls_col_name = dt.Columns[j].ColumnName.ToUpper();
if (lo_value == System.DBNull.Value)
{
Response.Write("<" + ls_col_name + "></" + ls_col_name + ">\n");
}
else
{
Response.Write("<" + ls_col_name + ">" + lo_value.ToString() + "</" + ls_col_name + ">\n");
}
}
Response.Write("</Table>\n");
}
Response.Write("</NewDataSet>");
Response.End();
下面用到XSL:
<table id="DataTable" width="100%" cellspacing="1" CellPadding="3" class="GridCss" border="1" style="BORDER-COLLAPSE:collapse">
<!--这段显示列名-->
<tr >
<xsl:for-each select="Table[1]/*">
<th align="center" style="WHITE-SPACE:nowrap" bordercolor="#ffffff">
<xsl:value-of select="name()"/>
</th>
</xsl:for-each>
</tr>
</table>
<!--这段用来显示记录符合条件的记录-->