我有以下几行代码:
xslt.Load(XmlReader.Create(new FileStream(@"C:\website\TransList.xslt", System.IO.FileMode.Open)));
xslt.Transform(mydoc.CreateReader(),null, sw);
Run Code Online (Sandbox Code Playgroud)
它工作正常,如果我停止项目并再次启动它,我收到以下错误:
[System.IO.IOException] = {"进程无法访问文件'C:\ website\TransList.xslt',因为它正由另一个进程使用."}
然后,我必须转到命令行并执行IISRESET,我也可以重置应用程序池,这是最简单的,因为这只是我的开发框.
现在我在try catch语句中进行调用,但是我无法访问处理程序中的xslt对象.
xslt对象似乎没有close或dispose方法.
看起来,垃圾收集器永远不会得到它.
有任何想法吗?
我正在寻找一个良好的跨平台移动应用程序开发框架,至少支持大4:iOS,Android,Windows Phone和Blackberry.
能否请您告诉我您推荐的框架的最佳点是什么?
我有以下代码:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" />
<xsl:key name="categories" match="Category" use="." />
<xsl:key name="clients" match="Category" use ="Category/Client" />
<xsl:template match="/">
<ul id="red" class="treeview-red">
<xsl:for-each select="/Promotions/Promotion/Category[
generate-id(.) = generate-id(key('categories', .)[1])
]">
<xsl:variable name="cname" select="." />
<li>
<span>
<xsl:value-of select="$cname" />
</span>
<xsl:for-each select="/Promotions/Promotion[Category=$cname]">
<ul>
<li>
<span>
<xsl:value-of select="Client" />
</span>
</li>
<ul>
<li>
<span>
<xsl:value-of select="Title" />
</span>
</li>
</ul>
</ul>
</xsl:for-each>
</li>
</xsl:for-each>
</ul>
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)
我的XML:
<Promotions>
<Promotion>
<Category>Arts & Entertainment</Category>
<Client>Client 1</Client>
<Title>Get your Free 2</Title>
</Promotion>
<Promotion> …Run Code Online (Sandbox Code Playgroud) 我有一些代码包装在xslt文件中的CDATA标记中:
<span>
<xsl:text><![CDATA[<asp:LinkButton ID ="]]></xsl:text><xsl:value-of select="ID"/>
<xsl:text><![CDATA[" onclick="LinkClicked">]]></xsl:text >
<xsl:value-of select="."/>
<xsl:text><![CDATA[</asp:LinkButton>]]></xsl:text>
</span>
Run Code Online (Sandbox Code Playgroud)
当它呈现在网页是>和<,我怎么解决这个得到什么?
现在我知道一个解决方法,因为我可以在渲染后在字符串中进行替换,但这似乎不是最好的方法.
我有一个LinkButton控件,我需要添加ac#方法.目前,当我使用解析控件并将控件添加到页面时,它会更改对javascript的调用,并且我得到了未定义.我想办法解决这个问题,就是定义一个javascript函数,从后面的代码中调用c#方法,但我无法弄清楚如何做到这一点.
特别是当点击链接按钮时,我需要javascript将链接按钮的ID传递给C#方法.
我试过这个:
foreach (Control Control in myctrl.Controls)
{
if (Control is LinkButton)
{
LinkButton lb = (LinkButton)Control;
lb.Click += LinkButton_Click;
}
Panel1.Controls.Add(myctrl);
}
public void LinkButton_Click(Object sender, EventArgs e)
{
BREAKPOINTHERE> Console.Write(e.ToString());
}
Run Code Online (Sandbox Code Playgroud)
点击时它永远不会触发.这是生成的代码:
<a id="dnn_ctr954_ViewPromotions_LinkButton2" href="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("dnn$ctr954$ViewPromotions$LinkButton2", "", true, "", "", false, true))">Get your Free 2</a>
Run Code Online (Sandbox Code Playgroud)
现在,如果我把它放在我的aspx页面,它工作正常:
<asp:LinkButton ID="test" OnClick="LinkButton_Click" runat="server">mybutton</asp:LinkButton>
Run Code Online (Sandbox Code Playgroud)
我明白了,它运行正常:
<a id="dnn_ctr954_ViewPromotions_test" href="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("dnn$ctr954$ViewPromotions$test", "", true, "", "", false, true))">mybutton</a>
Run Code Online (Sandbox Code Playgroud) 我有以下XML文件:
<Promotions>
<Promotion>
<Category>Arts & Entertainment</Category>
<Client>Client Five</Client>
<Title>Get your Free 2</Title>
</Promotion>
<Promotion>
<Category>Arts & Entertainment</Category>
<Client>Client 5</Client>
<Title>Get your Free 4</Title>
</Promotion>
<Promotion>
<Category>Arts & Entertainment</Category>
<Client>Client five</Client>
<Title>Get your Free 5</Title>
</Promotion>
<Promotion>
<Category>Community & Neighborhood</Category>
<Client>Client 1</Client>
<Title>Get your Free 1</Title>
</Promotion>
<Promotion>
<Category>Education</Category>
<Client>Client 3</Client>
<Title>Get Your Free 3</Title>
</Promotion>
Run Code Online (Sandbox Code Playgroud)
我想按类别分组.我尝试了以下操作并继续收到错误:
string xslmarkup = @"
<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:output method='html' />
<xsl:key name='Categories' match='Promotions/Promotion' use='Category'/>
<xsl:template match='/'>
<xsl:apply-templates select='
/Promotions/Promotion[
generate-id()
=
generate-id(key ('Categories',Category)[1])
] …Run Code Online (Sandbox Code Playgroud) xslt ×4
c# ×3
asp.net ×2
android ×1
dotnetnuke ×1
grouping ×1
iis-7 ×1
ios ×1
javascript ×1
mobile ×1
xsl-grouping ×1