如何使用aspxformlayout

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用aspxformlayout相关的知识,希望对你有一定的参考价值。

参考技术A 这个问题通常有以下两种方法实现:调用自定义函数来直接在Designer代码中实现利用ItemDataBound事件两种方法各有各的优势,你可以根据需求来选择。 下面,我直接通过代码来说明具体的实现方法。首先,假定我们有下面一个定义背景颜色的样式<pre t="code" l="csharp"><style type="text/css">
.LvColor
background-color:Olive;

.LvBlue
background-color: aliceblue;

</style>方法1:直接通过DataBinder来实现。<pre t="code" l="html"><ItemTemplate>
<tr runat="server" id="trItem" class='<%# GetBackColor(Eval("ContactTitle")) %>'>

</tr>
</ItemTemplate>后台代码:<pre t="code" l="csharp">protected string GetBackColor(object objVal)

string retVal = "none";
if (objVal != null)

if (objVal.ToString() == "Owner")

retVal = "LvColor";

else

retVal = "LvBlue";


return retVal;
方法2:利用ItemDataBound事件前台代码如下:<pre t="code" l="html"><asp:ListView ID="lvCustomers" runat="server" OnItemDataBound="lvCustomers_ItemDataBound">
<LayoutTemplate>
<table id="Table1" runat="server">
<tr style="background-color:#E5E5FE">

</tr>
<tr id="itemPlaceholder" runat="server"></tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr runat="server" id="trItem">

</tr>
</ItemTemplate>
</asp:ListView>后台代码:<pre t="code" l="csharp">protected void lvCustomers_ItemDataBound(object sender, ListViewItemEventArgs e)

if (e.Item.ItemType == ListViewItemType.DataItem)

ListViewDataItem dataitem = (ListViewDataItem)e.Item;
System.Web.UIControlsTableRow tr = (System.Web.UIControlsTableRow)dataitem.FindControl("trItem");
if (DataBinder.Eval(dataitem.DataItem, "ContactTitle").ToString() == "Owner")

// tr.BgColor = System.Drawing.Color.AliceBlue.ToString();
tr.Attributes.Add("class", "LvColor");

else

// tr.BgColor = System.Drawing.Color.Olive.ToString();
tr.Attributes.Add("class", "LvBlue");


如何在自动布局中使用约束标识符以及如何使用标识符更改约束? [迅速]

【中文标题】如何在自动布局中使用约束标识符以及如何使用标识符更改约束? [迅速]【英文标题】:How to use constraint Identifiers in autolayout and how to change constrain using identifiers? [Swift] 【发布时间】:2016-04-27 04:40:42 【问题描述】:

当我在 Xcode 7 中编辑我的约束时,我在 Interface Builder 中找到了 identifier 字段。什么是约束的标识符我如何使用它?使用标识符可以以编程方式访问约束并更改常量吗?我的问题是该标识符为什么以及如何有帮助?

有没有办法通过在子视图中循环并再次循环约束子视图的标识符来访问约束。我的意思是有什么方法可以直接访问约束而无需循环。

更新

我尝试了这段代码,但只访问了宽度和高度约束

    for subview in view.subviews 
        for constraint in subview.constraints() 
           if constraint.identifier == "identifier" 
                return constraint
           
        
    

【问题讨论】:

在这里回答:***.com/questions/27791597/… ***.com/questions/33038451/… @oyalhi 我更新了问题.. @EICaptain 我更新了我的问题 如果你有约束错误,你可以使用标识符来调试你的约束 【参考方案1】:

如何:标识符在调试时很有用(例如,约束不匹配,其中一个在运行时被破坏;约束标识符显示在日志中,因此您可以看看哪一个可能会导致问题)

为什么:约束标识符使日志更易于阅读、更准确,并且可以为您节省大量时间。

约束编辑:如果您想以编程方式更改约束,您必须将它们声明为 outlets(如标签或按钮),然后将它们从视图中移除(不是对象本身),然后将它们再次设置到视图中。据我所知,您不能仅以编程方式“编辑”约束。

您的代码只为您提供宽度和高度,因为您访问的视图约束只包含对象的宽度和高度。

【讨论】:

实际上可以在将约束声明为插座后对其进行修改,如下所示:self.myConstraint.constant = 50.0【参考方案2】:

在 Swift 4 中是可能的:

有了这个扩展:

extension UIView
    func constraintWith(identifier: String) -> NSLayoutConstraint?
        return self.constraints.first(where: $0.identifier == identifier)
    

你不能这样使用:

 if let myConstraint = myView.constraintWith(identifier: "myConstraintID")
     myConstraint.constant = 8
 

Ps:请务必在添加了约束的视图上调用constraintWith(identifier: String),通常在您正在更改的相关视图的超级视图上,或者如果约束是针对大小(宽度/高度),则在其自身上调用

【讨论】:

更准确地说,如果您想访问视图的高度、宽度或纵横比,请在 view 本身上调用此方法。另一方面,要访问其他约束,例如前导或尾随,请在包含视图的SuperView 上调用此方法。 @rule_it_subir 这一切都取决于您设置约束的方式【参考方案3】:

为了补充答案,我们还可以通过编程设置约束,这比我想象的要容易:

        let yConstraint = imageView.centerYAnchor.constraint(equalTo: layout.centerYAnchor)
        yConstraint.identifier = "yConstraint"
        let xConstraint = imageView.centerXAnchor.constraint(equalTo: layout.centerXAnchor)
            xConstraint.identifier = "xConstraint"

        NSLayoutConstraint.activate([
            yConstraint,
            xConstraint
        ])

然后,它出现在控制台中,尽管仍然难以阅读......

<NSLayoutConstraint:0x6000025fe490 'xConstraint' UIImageView:0x7f8f41107fa0.centerX == UILayoutGuide:0x600003fcc1c0'UIViewLayoutMarginsGuide'.centerX   (active)>

【讨论】:

以上是关于如何使用aspxformlayout的主要内容,如果未能解决你的问题,请参考以下文章

如果加入条件,我该如何解决。如果使用字符串连接,我如何使用

如何使用本机反应创建登录以及如何验证会话

如何在自动布局中使用约束标识符以及如何使用标识符更改约束? [迅速]

如何使用 AngularJS 的 ng-model 创建一个数组以及如何使用 jquery 提交?

如何使用laravel保存所有行数据每个行名或相等

如何使用 Math.Net 连接矩阵。如何使用 Math.Net 调用特定的行或列?