我正在尝试创建一个接受文本作为内部内容的Web控件,并在渲染时将其转换为javascript变量。 像这样:
<uc1:XTemplateExtender runat="server" ID="temp">
<div id="divHotelThumbPhoto" class="hdphoto"></div>
</uc1:XTemplateExtender>
我设法通过覆盖控件的OnPreRender来实现这一点,如下所示:
LiteralControl lt = this.Controls[0] as LiteralControl;
lt.Text = "var " + this.ID + "=\"" + HttpUtility.HtmlEncode(lt.Text.Replace("\r\n", " ")) + "\"";
这将呈现如下内容:
var temp="<div id="divHotelThumbPhoto" class="hdphoto"></div>"
问题是当我用&lt;%#SomeTextFromSRV%&gt;写一些东西时控制内部。在这种情况下,将有一个DataBoundLiteralControl,无法获取全文。
更多细节: 我正在使用ExtJS和XTemplate组件。有两种方法可以创建XTemplate。一个通过传递带有模板内容的js变量(作为字符串)。另一种方法是使用textarea html控件及其中包含的模板。我决定使用js变量方法,因为textarea与he-il文化的一些问题。 js变量的主要缺点是VS的智能感不起作用。这就是我需要那个组件的原因