GVKun编程网logo

PrimeFaces inputText ajax event = valueChange单击命令按钮后触发(private sub form_click()单击窗体)

16

如果您想了解PrimeFacesinputTextajaxevent=valueChange单击命令按钮后触发和privatesubform_click()单击窗体的知识,那么本篇文章将是您的不二之选

如果您想了解PrimeFaces inputText ajax event = valueChange单击命令按钮后触发private sub form_click()单击窗体的知识,那么本篇文章将是您的不二之选。我们将深入剖析PrimeFaces inputText ajax event = valueChange单击命令按钮后触发的各个方面,并为您解答private sub form_click()单击窗体的疑在这篇文章中,我们将为您介绍PrimeFaces inputText ajax event = valueChange单击命令按钮后触发的相关知识,同时也会详细的解释private sub form_click()单击窗体的运用方法,并给出实际的案例分析,希望能帮助到您!

本文目录一览:

PrimeFaces inputText ajax event = valueChange单击命令按钮后触发(private sub form_click()单击窗体)

PrimeFaces inputText ajax event = valueChange单击命令按钮后触发(private sub form_click()单击窗体)

使用JSF和PrimeFaces 6.1,我有一个inputText字段,例如:

<p:inputText value="#{backingBean.stringField}">    <p:ajax event="valueChange" update="@form" /></p:inputText>

在同一个表单中是一个commandButton:

<p:commandButton id="btnDoThatThing"                  ajax="true"                  immediate="true"                 update="@form"                 process="@this"                 action="#{backingBean.doThatThing}"/>

当我

  1. 对inputText字段进行更改,
  2. 然后单击命令按钮以外的其他位置
  3. 单击命令按钮

一切都按预期工作。但是如果我:

  1. 对inputText字段进行更改,
  2. 立即命令按钮

该按钮未触发,因为commandButton的第一次单击触发了valueChange事件在inputText字段中发生。

如果我第二次单击它,按钮动作最终会发生。

现在,如果我按预期的那样将commandButton 更改p:ajax event="valueChange"p:ajaxevent="keyup"第一次单击,则可正常工作,但是不幸的是,inputField上的keyup事件非常hacky,并且您失去了该字段内的功能(复制/粘贴文本,文本选择,“快速”键入等)

关于如何在inputText字段中启动change事件,以及当用户在inputText字段中键入后立即单击按钮时,如何触发commandButton动作有任何想法?

谢谢你的时间!

答案1

小编典典

首先,您的valueChange被触发。这将更新 包含
按钮的表单。无法100%确定这是否取决于浏览器,但是在Chromium(Linux)中,不会执行对先前呈现的按钮(在更新之前)的单击。

将更新表达式更改为选择器时,可以使它工作。我的表达式会更新需要更新的元素(
不包括 按钮)。就我而言:

<p:ajax update="@(form :input:not(button))" />

请注意,该change事件是输入的默认事件,因此已删除event="valueChange"

当然,您不需要使用选择器。您也可以只更新不包含按钮的组件(如面板):

<p:ajax update="yourPanel" />

另外,ajax="true"的默认设置p:commandButton,因此您可以将其删除。

ajax – primefaces p:selectBooleanButton监听器未在嵌套的ui:repeat中触发

ajax – primefaces p:selectBooleanButton监听器未在嵌套的ui:repeat中触发

在父ui:repeat中为p:selectBooleanButton触发侦听器,但不为内部/子ui:repeat触发p:selectBooleanButton的侦听器.

我们不能使用嵌套表单.有什么建议.

<h:form prependId="false">
 <ui:repeat value="#{xBean.sectionsList}" var="sectionItem">
  <p:fieldset>
   <p:selectBooleanButton onLabel="ON" offLabel="OFF" value="#{sectionItem.checked}">
    <p:ajax listener="#{xBean.selectSection}"/>
   </p:selectBooleanButton> :
   <ui:repeat value="#{sectionItem.sectionoptionsList}" var="sectionoptionItem">            
    <p:selectBooleanButton onLabel="ON" offLabel="OFF" value="#{sectionoptionItem.checked}">
     <p:ajax listener="#{xBean.selectSectionoption}"/>
    </p:selectBooleanButton>
    </ui:repeat>
   </p:fieldset>
 </ui:repeat>
</h:form>

解决方法

< ui:重复>是一个视图渲染时间标记.因此,它实际存在于JSF组件树中,并且需要多次迭代该值来生成其HTML输出.

换句话说,它们(p:selectBooleanButton)需要在视图构建时而不是视图渲染时准备.

JSTL< c:forEach>是一个视图构建时间标记.它将在JSF组件树中生成物理上的多个组件.

Android Material Design控件使用(2)——FloatButton TextInputEditText TextInputLayout 按钮和输入框

Android Material Design控件使用(2)——FloatButton TextInputEditText TextInputLayout 按钮和输入框

FloatingActionButton

1. 使用FloatingActionButton的情形

FAB代表一个App或一个页面中最主要的操作,如果一个App的每个页面都有FAB,则通常表示该App最主要的功能是通过该FAB操作的。

为了突出FAB的重要性,一个页面最好只有一个FAB 使用的时候需要导入desgin包,Android Studio 新版本都已经自动导入了,这里就不多说

 compile ''com.android.support:design:25.1.0''

2. FloatingActionButton的大小一般有两种大小(官方)

  1. 56 * 56dp :默认的大小,最常用的尺寸。
  2. 40 * 40 dp :Mini版。 当然也是可以改变大小,不过一般使用

按钮中间图标大小官方推荐为 24*24dp

3.FloatingActionButton的属性

FloatingActionButton是继承ImageView,包含了ImageView的所有属性,除此之外,还有几个新增加的特殊属性,需要使用命名空间来使用。

引入命名空间:xmlns:app="http://schemas.android.com/apk/res-auto"

属性名 说明
elevation 阴影的高度
fabSize FAB的大小,为normal时,大小为:56 * 56dp ,为mini时,大小为: 40 * 40 dp
backgroundTint FAB的背景颜色
rippleColor 点击FAB时,形成的波纹颜色

TextInputEditText

介绍

TextInputEditTextEditText的子类,相当于完善了有些EditText的缺点

当我们的界面处于全屏时,点击一个EditText,默认情况下不是在它下面弹出键盘,而是进入到输入法的一个全屏的输入界面(通过配置android:imeOptions=”flagNoExtractUi”可以设为直接在当前界面显示)

如果我们给EditText 套上了一个TextInputLayout时,TextInputLayout会拿到EditTexthint显示出来并把EditText本身的hint设为空.这样我们在全屏的输入界面上,就显示不出来我们设置hint,因此TextInputEditText重写了EditText

TextInputLayout

介绍

这个布局其实是与EditText连用,可以实现密码框的显示与隐藏,和点击输入的时候,会将提示文字浮现在上方

浮现文字

代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    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"
    android:layout_width="match_parent"
    android:orientation="vertical"
    android:layout_height="match_parent"
    tools:context="com.wan.homework.activity.Homework1Activity">
    <android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
            <android.support.design.widget.TextInputEditText
                android:id="@+id/username"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="用户名"/>
    </android.support.design.widget.TextInputLayout>

    <android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <EditText
            android:inputType="textPassword"
            android:id="@+id/password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="密码"/>
    </android.support.design.widget.TextInputLayout>


</LinearLayout>

错误提示

TextInputLayout其实内置了一个用来显示错误提示的方法,方法名为setError,效果如下

我们可以按钮的点击事件中,对用户的输入进行判断,从而显示错误信息

val userName = input_login_name.editText?.text.toString()

//验证用户输入
if (userName.isBlank()) {
	input_login_name.error = "用户名还未输入哦!"
}

PS:如果想要清空错误信息,将错误信息设置为""即可

input_login_name.error = ""

密码的显示与隐藏

如果想要实现此效果,只需要在将TextInputLayout的EditText的inputType属性设置为textpassword,将TextInputLayout的自定义属性passwordToggleEnabled设置为true即可

<android.support.design.widget.TextInputLayout
	android:id="@+id/input_password"
	android:layout_width="match_parent"
	android:layout_height="wrap_content"
	app:passwordToggleEnabled="true">

	<android.support.design.widget.TextInputEditText
		android:layout_width="match_parent"
		android:layout_height="wrap_content"
		android:hint="密码"
		android:inputType="textPassword"/>
</android.support.design.widget.TextInputLayout>

属性

属性名 说明
app:Theme 设置下划线或其他的颜色属性
android.support.design:counterEnabled 是否显示计数器
android.support.design:counterMaxLength 设置计数器的最大值,与counterEnabled同时使用
android.support.design:counterTextAppearance 计数器的字体样式
android.support.design:counterOverflowTextAppearance 输入字符大于我们限定个数字符时的字体样式
android.support.design:errorEnabled 是否显示错误信息
android.support.design:errorTextAppearance 错误信息的字体样式
android.support.design:hintAnimationEnabled 是否显示hint的动画,默认true
android.support.design:hintEnabled 是否使用hint属性,默认true
android.support.design:hintTextAppearance 设置hint的文字样式(指运行动画效果之后的样式)
android.support.design:passwordToggleDrawable 设置密码开关Drawable图片,于passwordToggleEnabled同时使用
android.support.design:passwordToggleEnabled 是否显示密码开关图片,需要EditText设置inputType
android.support.design:passwordToggleTint 设置密码开关图片颜色
android.support.design:passwordToggleTintMode 设置密码开关图片(混合颜色模式),与passwordToggleTint同时使用

原文出处:https://www.cnblogs.com/stars-one/p/10348492.html

com.facebook.react.uimanager.events.ContentSizeChangeEvent的实例源码

com.facebook.react.uimanager.events.ContentSizeChangeEvent的实例源码

项目:RNLearn_Project1    文件:ReactWebViewManager.java   
private WebView.PictureListener getPictureListener() {
  if (mPictureListener == null) {
    mPictureListener = new WebView.PictureListener() {
      @Override
      public void onNewPicture(WebView webView,Picture picture) {
        dispatchEvent(
          webView,new ContentSizeChangeEvent(
            webView.getId(),webView.getWidth(),webView.getContentHeight()));
      }
    };
  }
  return mPictureListener;
}
项目:Ironman    文件:ReactWebViewManager.java   
private WebView.PictureListener getPictureListener() {
  if (mPictureListener == null) {
    mPictureListener = new WebView.PictureListener() {
      @Override
      public void onNewPicture(WebView webView,webView.getContentHeight()));
      }
    };
  }
  return mPictureListener;
}
项目:react-native-x5    文件:RNX5WebViewManager.java   
private WebView.PictureListener getPictureListener() {
    if (mPictureListener == null) {
        mPictureListener = new WebView.PictureListener() {
            @Override
            public void onNewPicture(WebView webView,Picture picture) {
                dispatchEvent(
                        webView,new ContentSizeChangeEvent(
                                webView.getId(),webView.getContentHeight()));
            }
        };
    }
    return mPictureListener;
}
项目:Ironman    文件:RecyclerViewBackedScrollView.java   
private void onTotalChildrenHeightChange(int newTotalChildrenHeight) {
  if (mSendContentSizeChangeEvents) {
    ((ReactContext) getContext()).getNativeModule(UIManagerModule.class).getEventdispatcher()
        .dispatchEvent(new ContentSizeChangeEvent(
                getId(),getWidth(),newTotalChildrenHeight));
  }
}

com.facebook.react.views.textinput.ReactTextInputManager的实例源码

com.facebook.react.views.textinput.ReactTextInputManager的实例源码

项目:react-native-gcm-android    文件:MainReactPackage.java   
@Override
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
    return Arrays.<ViewManager>asList(
            new ReactDrawerLayoutManager(),new ReacthorizontalscrollviewManager(),new ReactimageManager(),new ReactProgressBarViewManager(),new ReactRawTextManager(),new ReactScrollViewManager(),new ReactSwitchManager(),new ReactTextInputManager(),new ReactTextViewManager(),new ReactToolbarManager(),new ReactViewManager(),new ReactViewPagerManager(),new ReactTextInlineImageViewManager(),new ReactVirtualTextViewManager(),new SwipeRefreshLayoutManager(),new ReactWebViewManager());
}
项目:ReactNativeSignatureExample    文件:MainReactPackage.java   
@Override
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
  return Arrays.<ViewManager>asList(
    ARTRenderableViewManager.createARTGroupViewManager(),ARTRenderableViewManager.createARTShapeViewManager(),ARTRenderableViewManager.createARTTextViewManager(),new ARTSurfaceViewManager(),new ReactDialogPickerManager(),new ReactDrawerLayoutManager(),new ReactDropdownPickerManager(),new FrescoBasedReactTextInlineImageViewManager(),new ReactWebViewManager(),new RecyclerViewBackedScrollViewManager(),new SwipeRefreshLayoutManager());
}
项目:react-native-ibeacon-android    文件:MainReactPackage.java   
@Override
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
  return Arrays.<ViewManager>asList(
    ARTRenderableViewManager.createARTGroupViewManager(),new SwipeRefreshLayoutManager());
}
项目:react-native-Box-loaders    文件:MainReactPackage.java   
@Override
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
  return Arrays.<ViewManager>asList(
    ARTRenderableViewManager.createARTGroupViewManager(),new ReactModalHostManager(),new ReactSliderManager(),new SwipeRefreshLayoutManager());
}
项目:Ironman    文件:MainReactPackage.java   
@Override
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
  return Arrays.<ViewManager>asList(
    ARTRenderableViewManager.createARTGroupViewManager(),new SwipeRefreshLayoutManager());
}
项目:RNLearn_Project1    文件:MainReactPackage.java   
@Override
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
  List<ViewManager> viewManagers = new ArrayList<>();

  viewManagers.add(ARTRenderableViewManager.createARTGroupViewManager());
  viewManagers.add(ARTRenderableViewManager.createARTShapeViewManager());
  viewManagers.add(ARTRenderableViewManager.createARTTextViewManager());
  viewManagers.add(new ARTSurfaceViewManager());
  viewManagers.add(new ReactDialogPickerManager());
  viewManagers.add(new ReactDrawerLayoutManager());
  viewManagers.add(new ReactDropdownPickerManager());
  viewManagers.add(new ReacthorizontalscrollviewManager());
  viewManagers.add(new ReactimageManager());
  viewManagers.add(new ReactModalHostManager());
  viewManagers.add(new ReactProgressBarViewManager());
  viewManagers.add(new ReactRawTextManager());
  viewManagers.add(new ReactScrollViewManager());
  viewManagers.add(new ReactSliderManager());
  viewManagers.add(new ReactSwitchManager());
  viewManagers.add(new FrescoBasedReactTextInlineImageViewManager());
  viewManagers.add(new ReactTextInputManager());
  viewManagers.add(new ReactTextViewManager());
  viewManagers.add(new ReactToolbarManager());
  viewManagers.add(new ReactViewManager());
  viewManagers.add(new ReactViewPagerManager());
  viewManagers.add(new ReactVirtualTextViewManager());
  viewManagers.add(new ReactWebViewManager());
  viewManagers.add(new SwipeRefreshLayoutManager());

  SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(reactContext);
  if (preferences.getBoolean("flat_uiimplementation",false)) {
    viewManagers.addAll(Arrays.asList(
      new RCTViewManager(),new RCTTextManager(),new RCTRawTextManager(),new RCTVirtualTextManager(),new RCTTextInlineImageManager(),new RCtimageViewManager(),new RCTTextInputManager(),new RCTViewPagerManager(),new FlatARTSurfaceViewManager(),new RCTModalHostManager()));
  }

  return viewManagers;
}

我们今天的关于PrimeFaces inputText ajax event = valueChange单击命令按钮后触发private sub form_click()单击窗体的分享已经告一段落,感谢您的关注,如果您想了解更多关于ajax – primefaces p:selectBooleanButton监听器未在嵌套的ui:repeat中触发、Android Material Design控件使用(2)——FloatButton TextInputEditText TextInputLayout 按钮和输入框、com.facebook.react.uimanager.events.ContentSizeChangeEvent的实例源码、com.facebook.react.views.textinput.ReactTextInputManager的实例源码的相关信息,请在本站查询。

本文标签: