假设我们有一个对象
class Entity
{
public string ID {get; set;}
public string Name {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
我想将属性绑定到页面上的两个文本框,如下所示:
<asp:FormView ID="FormView" runat="server">
<ItemTemplate>
<asp:textbox ID="TextId" Text='<%# Bind("ID") %>'/>
<asp:textbox ID="TextId" Text='<%# Bind("Name") %>'/>
</ItemTemplate>
</asp:FormView>
Run Code Online (Sandbox Code Playgroud)
然后在代码后面写这个
public EntityObject
{
get { return ViewState["Entity"] as Entity; }
set { ViewState["Entity"] = value; }
}
protected override void OnInit(EventArgs e)
{
if (EntityObject== null)
EntityObject= new EntityObject();
FormView.DataSource = new[] { EntityObject };
FormView.DataBind();
base.OnInit(e);
}
Run Code Online (Sandbox Code Playgroud)
当我在文本框中输入值时,我希望EntityObject在PostBack之后重新加载页面时在属性中包含这些值,但属性始终为null.
我正在尝试将上传脚本集成到我的页面中.我正在使用uploadcare.com.他们提供了一个简单的指令,但我无法让它工作:
https://github.com/uploadcare/angular-uploadcare/blob/master/angular-uploadcare.js
Run Code Online (Sandbox Code Playgroud)
我正在设置ng-model ="test",在我的控制器中我有以下内容:
angular.module('testApp')
.controller('MyCtrl', function ($scope) {
$scope.test = "test";
});
Run Code Online (Sandbox Code Playgroud)
HTML代码看起来像这样:
<uploadcare-widget ng-model="test" data-public-key="xyz" />
Run Code Online (Sandbox Code Playgroud)
当我检查Firebug时,我可以看到该小部件有效:
<input type="hidden" role="uploadcare-uploader" ng-model="test" data-public-key="6e0958899488d61fd5d0" data-crop="1200:630" value="http://www.ucarecdn.com/ca5513da-90f1-40d1-89e7-648237xxxxxx/-/crop/2560x1344/0,128/-/preview/" class="ng-isolate-scope ng-valid">
Run Code Online (Sandbox Code Playgroud)
但是这个输入值永远不会填充回我的"$ scope.test".这是为什么?当我输出$ scope.test时,它仍然显示"test"而不是我的图像路径值.
我正在尝试在我的自定义控件中使用本机双向android数据绑定
所以我在xml中有类似的东西
<layout>
<data>
<variable name="item" type="Boolean"/>
</data>
...
<my.control app:vm="@={item}"/>
...
</layout>
Run Code Online (Sandbox Code Playgroud)
请注意,这是关于@={}- 本地双向绑定的问题.
在代码中类似的东西:
class MyControl extends RelativeLayout{
...
@BindingAdapter("app:vm")
public static void setVm(View v, VM vm){...}
}
Run Code Online (Sandbox Code Playgroud)
我的问题 - 我应该如何为我的viewModel定义getter?我没有找到任何关于它的指导.我尝试了不同的方法 - 编写自定义getter,静态getter但错误仍然相同.
java data-binding android 2-way-object-databinding android-databinding
在下面的示例中,如何
obj.name将<input>字段的变量绑定<test-element2>到<test-element>?
以下是我的代码.我有两种聚合物元素.test-element将数据绑定到obj.name.test-element2有一个输入字段,由函数观察objChanged.无论我在输入字段中更改了什么值,它都会更改并打印,test-element2但更改不会反映出来test-element.任何人都可以帮助将价值反映到test-element1?我有一个解决方案this.fire("object-change")用于文本更改时,但我正在寻找一个不使用事件监听器的解决方案.
还有一件事是我需要从脚本创建一个元素,它不能在HTML DOM中硬编码.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Demo</title>
<script src="../../bower_components/webcomponentsjs/webcomponents-lite.js"></script>
<link rel="import" href="../../bower_components/polymer/polymer.html"/>
</head>
<body>
<dom-module id="test-element">
<template>
<div>Hello <span>{{obj.name}}</span></div>
</template>
<script>
TestElement = Polymer({
is: "test-element",
properties: {
"obj": {
type: Object,
notify: true
}
},
observers: [
"objChanged(obj.name)"
],
"objChanged": function() {
var that = this;
console.log("First …Run Code Online (Sandbox Code Playgroud) data-binding web-component 2-way-object-databinding polymer polymer-1.0
Qt中有2路(双向)地图吗?实现一一对应的简单地图。
谢谢
是有可能trim()的方法是在两个方面数据绑定,从XML获取信息时的工作.如果有,怎么样?
android:text='@={contact.contactDetails.name}'
Run Code Online (Sandbox Code Playgroud) 我试图找出Android中的双向数据绑定库。我想通过更改xml中的android:enabled属性来启用/禁用LinearLayout(以及内部的RelativeLayout)。
XML部分如下所示:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:layout_margin="5dp"
android:gravity="center"
android:enabled="@={viewModel.asd}"
ndroid:onClick="@{()-> viewModel.doSomething()}"
android:background="@drawable/shortcut_button_label_selector"
android:orientation="horizontal">
<RelativeLayout
android:layout_width="40dp"
android:layout_height="match_parent"
android:enabled="@={viewModel.asd}"
android:background="@drawable/shortcut_button_icon_selector">
Run Code Online (Sandbox Code Playgroud)
现在,我要执行此操作的原因是由于这两个选择器(shortcut_button_label_selector和shortcut_button_icon_selector),它们看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_enabled="false"
android:drawable="@color/grey_300"></item>
<item
android:state_enabled="true"
android:drawable="@color/menubar_background"></item>
</selector>
Run Code Online (Sandbox Code Playgroud)
我希望能够根据View上的enabled属性动态更改背景。之所以选择启用的属性,是因为我在LinearLayout上遇到了onClick事件,需要禁用它(使其不可点击)。我对android:clickable属性有同样的问题。
当我尝试编译它时,出现错误
java.lang.RuntimeException:发现数据绑定错误。**** /数据绑定错误**** msg:在android.widget.LinearLayout上找不到值类型为boolean的属性“ android:enabled”的获取器。
该viewModel.asd只是一个公共布尔/ ObservableBoolean,我都试过。
谁能解释这是怎么回事,为什么我会收到错误消息?我可以在View类(布局扩展)中看到isEnabled / setEnabled方法。
我有什么方法可以继续前进,还是必须完全改变?
//编辑:我可能不需要双向绑定。.我不再知道 //编辑继续:它可能需要对ViewModel继承做一些事情:
布局文件具有类型为abMainViewModel的viewModel,但是字段asd是abBaseViewModel(MainViewModel扩展了BaseViewModel)。现在,我想要这样做的是,如果我从扩展BaseViewModel的任何其他视图更新asd字段,它将自动更新enabled属性。
它也不能与Strings ..我猜这是继承的东西
亲切的问候,Marcin
我理解.sync在Vue 2.3中返回的修饰符,并将其用于实现"多选"问题和答案的简单子组件.父组件像这样调用子组件:
<question
:stem="What is your favourite colour?"
:options="['Blue', 'No, wait, aaaaargh!']
:answer.sync="userChoice"
>
Run Code Online (Sandbox Code Playgroud)
父项具有一个字符串数据元素,userChoice用于存储子组件的结果.孩子为选项提供问题和单选按钮.孩子的基本部分看起来像这样(我使用的是Quasar q-radio):
<template>
<div>
<h5>{{stem}}</h5>
<div class="option" v-for="opt in options">
<label >
<q-radio v-model="option" :val="opt.val" @input="handleInput"></q-radio>
{{opt.text}}
</label>
</div>
</div>
</template>
export default {
props: {
stem: String,
options: Array,
answer: String
},
data: () => ({
option: null
}),
methods: {
handleInput () {
this.$emit('update:answer', this.option)
}
}
}
Run Code Online (Sandbox Code Playgroud)
这一切都很好,除了如果父母然后更改userChoice由于应用程序中发生的其他事情的值,孩子不会更新单选按钮.我不得不把这个包含watch在孩子身上:
watch: {
answer () …Run Code Online (Sandbox Code Playgroud) 我试图在edittext中使用数据绑定,在早上它工作正常,但突然得到错误:
****/ data binding error ****msg:Cannot find the getter for attribute 'android:text' with value type java.lang.String on android.widget.EditText. file:/home/itstym/ApkProjects/Reminder/app/src/main/res/layout/activity_main.xml loc:20:4 - 34:40 ****\ data binding error ****
Run Code Online (Sandbox Code Playgroud)
EditText在第20行:4-34:40
<EditText
app:error="@{login.errorEmail}"
android:text="@={login.userEmailAddress}"
android:hint="Email Address"
android:id="@+id/email_address"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:ems="10"
android:inputType="textPersonName"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="24dp"/>
Run Code Online (Sandbox Code Playgroud)
查看持有人:
@Bindable
var userEmailAddress:String = String()
set(userEmailAddress){
field=userEmailAddress
notifyPropertyChanged(R.id.email_address)
/*to check Email for validation on every character inserted by user*/
notifyPropertyChanged(BR.errorEmail)
}
get() {
return field
}
Run Code Online (Sandbox Code Playgroud)
什么突然错了?
尝试解决方案:1.使缓存无效并重新启动.2.清理项目和重建项目.
android 2-way-object-databinding kotlin android-databinding two-way-binding
我正在尝试使用单选按钮的两种方式数据绑定。它可以通过如下所示的一种方式正常工作,
android:checked="@{registration.gender.equals(Gender.FEMALE.getValue())}"。
但我的问题是,我需要在模型中设置所选单选按钮的值。
<?xml version="1.0" encoding="UTF-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools">
<data>
<import type="com.callhealth.customer.comman.enums.Gender" />
<import type="android.text.TextUtils" />
<import type="java.lang.Integer" />
<variable name="callback" type="com.callhealth.customer.usermanagement.callback.RegistrationCallback" />
<variable name="registration" type="com.callhealth.customer.usermanagement.model.request.LoginAndRegistrationRequestModel" />
</data>
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:orientation="vertical">
<android.support.v7.widget.AppCompatTextView android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/label_gender" android:textSize="15sp" />
<RadioGroup android:id="@+id/gender_group" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="5dp" android:orientation="horizontal">
<android.support.v7.widget.AppCompatRadioButton android:layout_width="wrap_content" android:checked="@={registration.gender.equals(Gender.MALE.getValue())}" android:layout_height="wrap_content" android:text="@string/label_male" />
<android.support.v7.widget.AppCompatRadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginStart="20dp" android:checked="@={registration.gender.equals(Gender.FEMALE.getValue())}" android:text="@string/label_female" />
</RadioGroup>
</LinearLayout>
</layout>
Run Code Online (Sandbox Code Playgroud)
我的模特班
public class LoginAndRegistrationRequestModel extends BaseObservable {
private Integer gender;
@Bindable
public Integer getGender() {
return …Run Code Online (Sandbox Code Playgroud) android ×5
data-binding ×4
.net ×1
angularjs ×1
asp.net ×1
c# ×1
dictionary ×1
java ×1
kotlin ×1
polymer ×1
polymer-1.0 ×1
qt ×1
vue.js ×1
vuejs2 ×1