Mat*_*ted 7 c# asp.net controls
这是我在这个网站上提出的第一个问题,所以我为我提前做的任何muckups道歉,但我会尝试尽可能地问这个问题.
我发现我的问题有点难以解释,但归结为:
我有一个大的HTML字符串,它是通过从Web服务检索XML文件并使用XSLT将其转换为大型HTML字符串而生成的.然后我将其解析为一个Control集合,添加一些事件处理程序并将其添加到HTMLPlaceholder中,万事如意.
但是,由于这个HTML字符串几乎包含了我的整个网站,并且正在运行无法同时处理所有标记的手头终端,因此我过滤了我发送的标记,但这会出现问题.
Div在不丢失Div我想要保留的元素的情况下,不能过滤掉元素.这是因为Parsecontrol将我的Div元素切成两半并将它们转换为Literalcontrols,它们按br元素排序.
显示我的代码有点难,但这里有一个例子:
//html contains the auto generated HTML
ctrl = ParseControl (html);
for ( int i = ctrl.Controls.Count - 1 ; i >= 0 ; --i )
{
string MenuId = "";
Control theControl = ctrl.Controls[i];
if ( theControl is Button )
// Code that filters buttons
if ( theControl is TextBox)
// Code that filters textboxes
if ( theControl is LiteralControl )
{
LiteralControl literal = theControl as LiteralControl;
//This checks if the Div element I'm looking for exists
//If it does, I want to keep it
bool contains = literal.Text.Contains ("<div id=\"" + ParentDiv);
if ( contains )
MenuId = ParentDiv;
}
if ( MenuId != ParentDiv )
{
ctrl.Controls.RemoveAt (i);
}
}
Run Code Online (Sandbox Code Playgroud)
当我到达LiteralControl部分时出现问题.按钮和文本字段工作正常.然而,LiteralControl将我的Div元素切成两半并按br元素过滤.我的div元素如下所示(为简洁起见):
<div class="hide" id="TB_24000" >
<br>
<Textbox elements>
<Button elements>
<Label elements>
<br>
<Textbox elements>
<Button elements>
<Label elements>
<br>
<input type="button" id="btnBack" value="Tilbage" class="BackandResetButtons" onclick="backButton(this,document.getElementById('MenuLevel1'),document.getElementById('TB_24000')); return false;"></div>
Run Code Online (Sandbox Code Playgroud)
但我的LiteralControl元素如下所示(未经编辑):
<br><input type="button" id="btnBack" value="Tilbage" class="BackandResetButtons" onclick="backButton(this, document.getElementById('TB_33999'),document.getElementById('TB_38400'));
 "></div>
Run Code Online (Sandbox Code Playgroud)
接下来:
<br><label class="label">FRAGT</label><br>
Run Code Online (Sandbox Code Playgroud)
接下来:
<br><label class="label">SPEDITØR</label><br>
Run Code Online (Sandbox Code Playgroud)
如您所见,我的LiteralControls基于br元素,但问题是我想基于Div元素进行过滤.但是,如果不采取肮脏和坦率的不必要的黑客行为似乎是不可能的.
所以我的问题是:如何基于Div元素而不是Br元素进行过滤?我可以过滤添加功能的按钮和文本框,但我的布局和网站依赖于我的Div元素.