首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET Framework >

600 分!哪位高手解决小弟我的有关问题给哪位高手。小弟我看是不是CSDN没高手,还是因为没分。没人解决的话此贴分给结贴时的 最后一个回复者

2012-02-17 
600 分!!!谁解决我的问题给谁。我看是不是CSDN没高手,还是因为没分。没人解决的话此贴分给结贴时的 最后一个

600 分!!!谁解决我的问题给谁。我看是不是CSDN没高手,还是因为没分。没人解决的话此贴分给结贴时的 最后一个回复者。
昨天发了一个 0 分贴:http://topic.csdn.net/u/20080801/08/3f222f6a-4ecd-4c23-ad34-28b802352c43.html
好多人就说没给分啊,说我小气。要BS我,抵制我。其实我不怕无能的人BS我,抵制我。我到怕高手不帮助我。
其实我一共发了 4 个0分贴来问这个问题。http://topic.csdn.net/u/20080801/08/9dca6c24-b827-49d0-acdc-2ca5244a2470.html
http://topic.csdn.net/u/20080729/17/a6c9eb28-daa7-49eb-9fb8-edc46a6ef644.html
http://topic.csdn.net/u/20080729/16/dec95bc6-73e5-498b-86ef-c919cd376554.html

其实我认为分要给用心帮助我的人。 我以前也问了10来个问题,都是0分,只不过后来自己解决了。
这次没解决,我现在还是问这个问题。

自己写了一个控件 LiteralRenderer, 
假设如下标记: 

<asp:LiteralRenderer runat="server">..1239999999456. <input runat="server" at="s">aahhhhhhhaaaa </input>abcdef </asp:LiteralRenderer> 

怎么把 asp:LiteralRenderer 开始和结束标记之间的内容全部当成 asp:LiteralRenderer 的一个 string 属性? 


可能这次也没人回答,但我还是会结贴给分的,所以先说明给分规则:
1,如果有人帮助我解决了问题,600分(另开贴点名给分)全给他。
2,如果多个人帮助我解决了问题,解决办法不一样,600分(另开贴点名给分)酌情分配。
3,如果有人提示解决问题的方法,而我根据他的提示解决了问题,600分(另开贴点名给分)全给他。
4,如果多个人提示解决问题的方法,而我根据他们的提示解决了问题,600分(另开贴点名给分)酌情分配。
5,意思差不多的内容以第一个为主,其余的视为抄袭,不给分。
6,如果没人帮助我解决此问题,此贴的所有分给最后一名用心考虑过问题并给出解决办法者。
7,如果全部是灌水的,给最后一名灌水的(广告除外)。
8,如果全部不符合,我自己减小号接分(应该有人来顶吧?)。
9,最后以实际结贴给分为准。




[解决办法]
public string Filter(string s)
{
s = s.Replace("&","&amp;");
s = s.Replace(" ","&nbsp;");
s = s.Replace("\"","&quot;");
s = s.Replace("<","&lt;");
s = s.Replace(">","&gt;");
return s;
}

protected override void Render(HtmlTextWriter output) 

output.Write(Filter(Text)); 


[解决办法]
把..1239999999456. <input runat="server" at="s">aahhhhhhhaaaa </input>abcdef 这些内容先加密(或者其它的方式也行),使其转换为独立的字符串,在读取时再解密还原。
[解决办法]

探讨
1 你发错区了,此处高手未必是擅长你这个问题的高手
2 做软件的都是高收入,你的所谓分和人家牺牲的工资比起来不值一提
3 有求于人的话就不要质疑别人的能力
4 你确定你的给分方式不是在要求别人灌水?
本来想看看你的问题是什么的,看了标题之后就不想看你的问题了

[解决办法]
[DefaultProperty("Text"),
ToolboxData("<{0}:LiteralRenderer runat=server></{0}:LiteralRenderer>"), ParseChildren(false, "Text")]
public class LiteralRenderer : System.Web.UI.WebControls.WebControl
{
private string text;

[Bindable(true), 
Category("Appearance"), 
DefaultValue(""), PersistenceMode(PersistenceMode.InnerDefaultProperty)] 
public string Text 
{
get
{
return text;
}

set
{
text = value;
}
}

protected override void Render(HtmlTextWriter output)
{
output.Write(Text);
}

private string Filter(string s)
{
if (s == null) return string.Empty;
s = s.Replace("&","&amp;");
s = s.Replace(" ","&nbsp;");
s = s.Replace("<","&lt;");
s = s.Replace(">","&gt;");
s = s.Replace("\"","&quot;");
return s;
}

protected override void AddParsedSubObject(object obj)
{
text = text + Filter(RenderControlAsString((Control)obj));//
}

public string RenderControlAsString(Control ctl)
{


System.IO.StringWriter sw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter writer = new System.Web.UI.HtmlTextWriter(sw);
ctl.RenderControl(writer);
string str =sw.ToString();
writer.Close();
sw.Close();
return str;
}
}
[解决办法]
private string subtext;
public string SubText
{
get
{
return this.subtext;
}
set
{
string s = value;
s = s.Replace("&", "&amp;");
s = s.Replace(" ", "&nbsp;");
s = s.Replace("\"", "&quot;");
s = s.Replace(" <", "&lt;");
s = s.Replace(">", "&gt;");
subtext = s;
}
}
把<asp:LiteralRenderer 内的内容作为子控件通过这是ListeralRenderer的SubText属性赋值
protected override void CreateChildControls()
{
Label lb = new Label();
lb.Text = this.subtext;
this.Controls.Add(lb);
}
[解决办法]
在RenderControlAsString方法里,你可以想办法获取控件定义的代码
[解决办法]

探讨
你还没明白我的意思,我是要把控件之间的内容作为属性。

[解决办法]
折中的办法,获取网页源代码,在用正则表达式找出控件自己的定义代码

protected override void Render(HtmlTextWriter output)
{
string fileName = null;
if (this.Site == null)
{
fileName = Page.Server.MapPath(Page.Request.Url.LocalPath);
}
else
{
EnvDTE.DTE _dte = (EnvDTE.DTE )Site.GetService(typeof(EnvDTE.DTE ));
fileName = _dte.ActiveDocument.FullName; 
}

//获取网页源代码
String tmp = string.Empty;
if (System.IO.File.Exists(fileName))
{
System.IO.StreamReader sr = new System.IO.StreamReader(fileName);
tmp = sr.ReadToEnd();
sr.Close();
}


output.Write(Filter(tmp));
}
[解决办法]
innerHtml?
[解决办法]
探讨
innerHtml?

[解决办法]
探讨
你最好遵循控件的普遍规则,遵循asp.net已经设计好的解析过程的逻辑。你见过asp.net中哪一个控件这样做过?如果要作为一个string,应该将目标设计为:

<asp:LiteralRenderer runat="server" Text='..1239999999456. <input runat="server" at="s">aahhhhhhhaaaa </input>abcdef' />

如果太随意地破坏一般的规则,反而带来asp.net系统运行和自己将来的程序处理的混乱。…

[解决办法]
你可以试一下innerHTML这个属性!



<asp:LiteralRenderer runat="server"><div id="服务控件相关的变量">..1239999999456. <input runat="server" at="s">aahhhhhhhaaaa </input>abcdef </div></asp:LiteralRenderer>

服务控件相关的变量.innerHTML就可以做为你的一个string属性

热点排行