gpt4 book ai didi

asp.net 4.0 : is there any equivalent of ClientIDMode for the names of INPUTs?

转载 作者:行者123 更新时间:2023-12-03 14:24:08 29 4
gpt4 key购买 nike

我有一个 asp:ListView其 ClientIDMode 设置为 Predictable。它的 ItemTemplate 包含一个 asp:textbox .

文本框的 ID 符合我的预期,但它的 name仍在使用看起来像 AutoID 风格的算法:

<input name="lvFields$ctrl0$tbVal" id="lvFields_tbVal_somekey" type="text"/>

有没有办法让输入的名称像 ID 一样?

(针对以下问题进行编辑:)
Name输入元素的内容是 POST 数据中的内容,因此如果回发更改了 ListView 绑定(bind)到的列表(例如,交换两个元素),则来自文本框的值最终与错误的键相关联,因为框架正在关联他们基于 Name而不是 ID .

最佳答案

您可以使用以下帖子中的方法更改 Input 的名称,但稍作修改:

how to remove 'name' attribute from server controls?

我超越了RenderChildren Page 上的方法控制,因为我只想完全控制几个控件的 HTML:

protected override void RenderChildren(HtmlTextWriter writer)
{
var unScrewNamesRender = new RenderBasicNameHtmlTextWriter(writer);
base.RenderChildren(unScrewNamesRender);
}

private class RenderBasicNameHtmlTextWriter : HtmlTextWriter
{
public RenderBasicNameHtmlTextWriter(TextWriter writer) : base(writer) { }

public override void AddAttribute(HtmlTextWriterAttribute key, string value)
{
if (key == HtmlTextWriterAttribute.Name && value.Contains("POLine"))
{
value = value.Substring(value.LastIndexOf("$") + 1);
}

base.AddAttribute(key, value);
}
}

如果您尝试这样做,您确实需要知道您在做什么,WebForms 会认为该控件丢失,因此您不能在任何回发中使用它。出于我的目的,我想在服务器或客户端添加任意数量的多行,而不必处理 .Net Ajax 控件,它工作正常。

关于asp.net 4.0 : is there any equivalent of ClientIDMode for the names of INPUTs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4973947/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com