Asp.net 如何仅在特定页面上使用css控件适配器
我找到了asp.net向导控件的控件适配器。我想在我的网站上使用它。但是我已经有了一些使用向导控件的页面。我不希望这些页面使用新适配器。有可能吗?我没有直接使用适配器,但通过阅读文档,您似乎可以将向导控件子类化为自己的版本,比如“AdaptedWizard”。您不必对基础代码进行任何重写,除非它有助于解决您遇到的其他问题 从那里,您似乎可以修改.browser文件以引用AdaptedWizard类而不是默认的Wizard类。然后,站点上的所有新向导都将从AdaptedWizard而不是Wizard分类 祝你好运Asp.net 如何仅在特定页面上使用css控件适配器,asp.net,asp.net-2.0,Asp.net,Asp.net 2.0,我找到了asp.net向导控件的控件适配器。我想在我的网站上使用它。但是我已经有了一些使用向导控件的页面。我不希望这些页面使用新适配器。有可能吗?我没有直接使用适配器,但通过阅读文档,您似乎可以将向导控件子类化为自己的版本,比如“AdaptedWizard”。您不必对基础代码进行任何重写,除非它有助于解决您遇到的其他问题 从那里,您似乎可以修改.browser文件以引用AdaptedWizard类而不是默认的Wizard类。然后,站点上的所有新向导都将从AdaptedWizard而不是Wizar
Nate如果您有权访问源代码,则可以编辑控件适配器,以便在调整控件的输出之前,首先检查自定义属性是否存在并且具有正确的值。您应该在呈现之前删除自定义属性,否则它将呈现为html 我已经在许多控制适配器上使用过它,它工作良好,并为您提供了调整哪些控制的指示。它还消除了创建扩展类的需要 下面的代码是我如何确定是否应该调整控件的
public class TestAdapter : WebControlAdapter
{
bool _adapt = false;
protected override void OnInit(EventArgs e)
{
Check();
base.OnInit(e);
}
void Check()
{
// search for custom attribute
const string att = "adapt";
string value = this.Control.Attributes[att];
if (string.IsNullOrEmpty(value))
{
return;
}
if (!bool.TryParse(value, out _adapt))
{
throw new InvalidOperationException("adapt attribute has invalid value : " + value);
}
this.Control.Attributes.Remove(att);
}
}
是的,这真是一种享受——我做过一些这样的东西。