本文整理汇总了C#中IHtmlElement.NextElement方法的典型用法代码示例。如果您正苦于以下问题:C# IHtmlElement.NextElement方法的具体用法?C# IHtmlElement.NextElement怎么用?C# IHtmlElement.NextElement使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IHtmlElement
的用法示例。
在下文中一共展示了IHtmlElement.NextElement方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: BindElement
/// <summary>
/// 对元素进行数据绑定
/// </summary>
/// <param name="element">需要绑定数据的元素</param>
/// <param name="context">绑定上下文</param>
/// <param name="dataContext">数据上下文</param>
/// <returns>是否进行了绑定</returns>
public bool BindElement( IHtmlElement element, HtmlBindingContext context, out object dataContext )
{
dataContext = null;
if ( element.Attribute( "binding-visible" ) != null )
{
var visible = element.Attribute( "binding-visible" ).Value();
if ( visible.EqualsIgnoreCase( "false" ) || visible.EqualsIgnoreCase( "hidden" ) || visible.EqualsIgnoreCase( "invisible" ) )
element.Remove();
return true;
}
//处理样式类
{
var classAttribute = element.Attribute( classAttributeName );
if ( classAttribute != null )
{
if ( !string.IsNullOrWhiteSpace( classAttribute.AttributeValue ) )
{
var classes = Regulars.whiteSpaceSeparatorRegex.Split( classAttribute.AttributeValue ).Where( c => c != "" ).ToArray();
if ( classes.Any() )
element.Class( classes );
}
element.RemoveAttribute( classAttributeName );
}
}
//处理CSS样式
var styleAttributes = element.Attributes().Where( a => a.Name.StartsWith( styleAttributePrefix ) ).ToArray();
if ( styleAttributes.Any() )
BindElementStyles( element, styleAttributes );
if ( !element.Name.EqualsIgnoreCase( "view" ) && !element.Name.EqualsIgnoreCase( "binding" ) )
{
var dataContextExpression = AttributeExpression.ParseExpression( element.Attribute( "datacontext" ) );
if ( dataContextExpression != null )
dataContext = GetDataObject( dataContextExpression, context );
return false;
}
var expression = new AttributeExpression( element );
object dataObject = GetDataObject( expression, context );
if ( dataObject == null )
return false;
var format = element.Attribute( "format" ).Value();
//绑定到客户端脚本对象
var variableName = element.Attribute( "var" ).Value() ?? element.Attribute( "variable" ).Value();
if ( variableName != null )
{
if ( format != null )
dataObject = string.Format( format, dataObject );
var hostName = element.Attribute( "host" ).Value();
var script = (string) null;
if ( hostName == null )
script = string.Format( "(function(){{ this['{0}'] = {1} }})();", variableName, ToJson( dataObject ) );
else
script = string.Format( "(function(){{ this['{0}'] = {1} }})();", variableName, ToJson( dataObject ) );
element.ReplaceWith( string.Format( "<script type=\"text/javascript\">{0}</script>", script ) );
return true;
}
//绑定为 HTML 文本
var bindValue = string.Format( format ?? "{0}", dataObject );
var attributeName = element.Attribute( "attribute" ).Value() ?? element.Attribute( "attr" ).Value();
if ( attributeName != null )
{
var nextElement = element.NextElement();
if ( nextElement == null )
return false;
nextElement.SetAttribute( attributeName, bindValue );
return true;
}
element.ReplaceWith( bindValue );
return true;
}