我已经创建了一个常规的ASP.NET用户控件,包括ascx文件.例如:
MyUserControl.ascx
MyUserControl.ascx.cs
Run Code Online (Sandbox Code Playgroud)
然后我尝试在运行时使用类似于以下代码的代码手动渲染控件:
var testMyUserControl = new MyUserControl();
var textWriter =
new HtmlTextWriter(
new System.IO.StringWriter(new StringBuilder()));
testMyUserControl.RenderControl(textWriter);
Console.Write(textWriter.InnerWriter.ToString());
Run Code Online (Sandbox Code Playgroud)
我放在ASCX文件中的任何内容似乎都没有呈现 - 静态HTML或任何.NET控件.
但是,如果我在代码隐藏中覆盖Render()方法并手动输出内容,则会进行渲染.
我在这里错过了什么?
我想用AJAX验证所有输入字段.
例如,有3个输入字段.其中两个最小长度为3个字符,另一个由简单的正则表达式验证.因为<f:ajax>我设置了keyup事件以快速查看ajax验证.完整示例可能如下所示:
<h:form>
<h:messages id="messages" />
<h:inputText id="text1" value="#{bean.text1}">
<f:validateLength minimum="3" />
<f:ajax execute="@this" event="keyup" render="messages" />
</h:inputText>
<h:inputText id="text2" value="#{bean.text2}">
<f:validateLength minimum="3" />
<f:ajax execute="@this" event="keyup" render="messages" />
</h:inputText>
<h:inputText id="text3" value="#{bean.text3}">
<f:validateRegex pattern="[A-Z][a-zA-Z]*" />
<f:ajax execute="@this" event="keyup" render="messages" />
</h:inputText>
</h:form>
Run Code Online (Sandbox Code Playgroud)
一旦我将输入的第一个输入字段留下错误并跳转到第二个字段并在那里键入无效的东西,第一个无效字段的消息就会消失,因为消息被重新呈现!一旦我开始在第一个输入字段中输入,将执行设置为@form将导致所有字段都被验证.
所以我的问题是:如何用AJAX显示所有验证错误,而不仅仅是最后一个无效字段的最后一条消息?
PS:我在Websphere上使用Mojarra 2.0.3(+ Richfaces + Primefaces)
是否有可能在两个兄弟节点之间有不同的彩色树线?
我想通过连接它们的蓝线来显示这两个节点是链接的.但是整个JTree默认颜色是灰色或黑色的角度线.某些节点之间可能有部分不同的彩色线条吗?
这是代码:
<h:form id="articleForm" >
<p:commandButton value="Select tags" ajax="true" >
<f:ajax execute="@form" render="@form :articleForm:tags" />
</p:commandButton>
<p:pickList id="tags" value="#{articleController.dualListModelForTags}" var="tag" itemLabel="#{tag.tag}" itemValue="#{tag}" converter="distinctTagConverter">
<f:facet name="sourceCaption">Distinct tags</f:facet>
<f:facet name="targetCaption">Connected tags</f:facet>
</p:pickList>
</h:form>
Run Code Online (Sandbox Code Playgroud)
单击命令按钮时,将调用并执行辅助bean中的getDualListModelForTags().在getDualListModelForTags()中我做了一些修改,所以我想要更新选项列表.但是不会再次呈现选项列表(id = tags).只有当我刷新页面时,才会对选项列表进行修改.
我有一部分是我在同一页面上渲染两次,但在两个不同的位置(一个在标准布局中显示,一个在移动/平板电脑布局期间显示).
部分在两个地方呈现完全相同,所以我想通过将其作为变量存储来加速它,如果可能的话; partial每次都进行一次API调用,第二次调用完全没必要,因为它是第一次API调用的副本.
有没有办法将返回的部分中的HTML存储为变量,然后将其用于两个渲染?
编辑:我希望在没有缓存的情况下这样做,因为这是一个非常简单的需求,我希望保持代码库的精简和可读性.是否可以将partial存储为字符串变量然后引用两次?
是否有可能比屏幕刷新率更快地进行GPU加速3D渲染?
是否有可能使用OpenGL?如果是,如果没有,使用什么工具?
注意
因为我希望渲染比屏幕刷新率更快,所以我不介意没有输出到屏幕.事实上,没有输出窗口将是一个优势.
我将以编程方式(glReadPixels例如通过)使用渲染输出,或者输出到文件作为视频供人类稍后观看.
为什么我要这样做
我想对计算机视觉的机器人进行计算机模拟.模拟机器人将有一个虚拟相机来观察这个世界,并将根据相机输入采取行动.因此,我希望模拟尽可能快地运行,忽略屏幕刷新率.
我有几个纹理将在我的屏幕上保持静止.我不是在渲染时单独渲染每个渲染,而是将它们全部渲染为一个纹理.到目前为止我的代码看起来像:
SDL_Texture* target_texture = NULL;
SDL_SetRenderTarget(renderer, target_texture);
SDL_RenderCopy(renderer, texture1, NULL, &dst1);
SDL_RenderCopy(renderer, texture2, NULL, &dst2);
SDL_RenderCopy(renderer, texture3, NULL, &dst3);
.
.
.
SDL_SetRenderTarget(renderer, NULL);
SDL_RendererPresent(renderer);
// Here the screen displays as I want
SDL_Delay(2000);
SDL_RenderClear(renderer);
SDL_RenderCopy(renderer, target_texture, NULL, NULL);
SDL_RendererPresent(renderer);
// Here the screen is black as though target_texture is still NULL
Run Code Online (Sandbox Code Playgroud) 我想在场景中有两个重叠的对象,但是我想定义应该先绘制哪个对象。我在这里有一个代码示例:http : //jsfiddle.net/sg02e5sm/1/
我正在使用renderOrder = 1第二个对象,以使其始终显示在第一个对象的顶部(只要它们具有相同的Z值),但是它不起作用。
我很难在视图函数中呈现自定义类型列表.这是模型:
type alias Guid = String
type alias User = String
type alias TaxonomyCategory =
{ id : Guid
, name: String
, updatedAt: Date
, updatedBy: User
, terms: List TaxonomyTerm
}
type TaxonomyTerm =
TaxonomyTerm
{ id : Guid
, name: String
, terms: List TaxonomyTerm
}
Run Code Online (Sandbox Code Playgroud)
我尝试了几种使用List.map函数的方法,但我总是遇到某种错误消息.
The 2nd argument to function `ul` is causing a mismatch.
120| ul
121| []
122|> [ List.map renderTaxonomyTerm tc.terms ]
Function `ul` is expecting the 2nd argument to be:
List …Run Code Online (Sandbox Code Playgroud) 我是ReactJS的初学者,刚开始学习并开始编写用于猜测数字的代码,但是猜测计数显示不同的值。{this.state.attempts}持有编号 用户尝试查找答案以显示正确值的尝试次数。但是{this.state.result}显示每次点击的结果,但是如果用户找到答案,它将显示以前的状态。我想知道这是怎么发生的。那是因为它不在下面render()吗?
import React, { Component } from 'react';
export default class NoLifeCycComps extends Component {
constructor(props) {
super(props);
this.state = this.getInitialState();
this.checkValue = this.checkValue.bind(this);
this.updateInput = this.updateInput.bind(this);
}
randNum(){
return Math.floor((Math.random() * 100) + 1);
}
getInitialState(){
return {
num: this.randNum(),
inputValue: '',
attempts: 0,
result: '',
reset : false
}
}
reset() {
this.setState(this.getInitialState());
}
checkValue() {
this.setState((prevState) => {
return { attempts: prevState.attempts + 1 }
});
if (this.state.inputValue > this.state.num) …Run Code Online (Sandbox Code Playgroud)