在不使用ID的情况下在网页上设置值(作为ID更改)

时间:2017-12-15 13:01:18

标签: c# webpage getelementbyid setvalue

我想使用Windows应用程序表单在网页上设置一个值并使用GetElementById和    SetAttribute(" value",desiredValue) 我创建了一个命令列表,可以浏览网页并输入值:

currentCommands.Enqueue(new Command("setvalue", "45", 
"setPublishMin"));

而" setPublishMin"通过commandHandler类和csv文件链接到wepage上文本框的ID ID看起来像这样

ID =" WebpageAdminTheme_ComponentList_ctl02_wtExpandableInnerBlock_wtExpandableSe     ction__Sets"]

一旦我填写了文本框并添加了另一个我希望传递不同值的文本框,除了" ctl02 "之后,ID将是相同的。改为" ctl04 " ID中的等等。 所以我想知道是否有更简单的方法来传递值而不是使用ID

2 个答案:

答案 0 :(得分:0)

您可以尝试使用ClientIdMode

<asp:ContentID="content"ContentPlaceHolderID="content"runat="server"ClientIDMode="Static" >    
    <asp:TextBox runat="server"ID="txtName"ClientIDMode="Static" />        
</asp:Content> 

静态 此选项强制控件的ClientID直接使用其ID值。根本没有应用命名容器命名,最终会得到干净的客户端ID:

<inputname="ctl00$content$txtName"type="text"id="txtName" />

答案 1 :(得分:0)

如果要为来自&#34; ctl02&#34;的所有输入设置相同的值;到&#34; ctl04&#34;,那么你也可以通过课堂实现这一点。为所有控件提供相同的类,并使用类设置值。

var elms = document.getElementsByClassName('class-name')
for (var i = 0; i < elms.length; i++) {
    elms[i].setAttribute("value", "foo");
}