Javascript 如何在Java脚本中从InsertItemTemplate查找控件

Javascript 如何在Java脚本中从InsertItemTemplate查找控件,javascript,c#,asp.net,Javascript,C#,Asp.net,我不熟悉Java脚本。我有一个带有InsertItemTemplate和一些按钮的aspx列表视图,现在我需要在JavaScript中访问InsertItemTemplate中的按钮来禁用它。这不管用吗 document.getElementById(“”).disable=true 请帮帮我。解决方案1 您可以在code behind中设置Javascript代码,在这里您可以访问ListView中每个项的控件的ClientID属性。例如,如果项目模板中有两个按钮,并且在单击btn1时要禁用b

我不熟悉Java脚本。我有一个带有InsertItemTemplate和一些按钮的aspx列表视图,现在我需要在JavaScript中访问InsertItemTemplate中的按钮来禁用它。这不管用吗

document.getElementById(“”).disable=true


请帮帮我。

解决方案1

您可以在code behind中设置Javascript代码,在这里您可以访问ListView中每个项的控件的
ClientID
属性。例如,如果项目模板中有两个按钮,并且在单击
btn1
时要禁用
btn2
,则可以在
ItemDataBound
事件中设置客户端代码:

void lstView_ItemDataBound(object sender, ListViewItemEventArgs e)
{
    if (e.Item.ItemType == ListViewItemType.InsertItem)
    {
        Button btn1 = e.Item.FindControl("btn1") as Button;
        Button btn2 = e.Item.FindControl("btn2") as Button;
        btn1.OnClientClick = string.Format("var btn2 = document.getElementById('{0}'); btn2.disabled = true; return false;", btn2.ClientID);
    }
}

解决方案2

如果无法使用第一种方法,但可以修改标记,则可以为按钮指定一个在页面中唯一的名称,并将按钮的
clientmode
设置为
Static

<asp:Button ID="btnUniqueName1" runat="server" ClientIDMode="Static" ... />

解决方案3

如果必须在不修改服务器代码的情况下查找按钮,则可以检索表单中的所有按钮,并查找仅在要查找的按钮中找到的某些属性:

var buttons = document.getElementsByTagName('button');
for (var i = 0; i < buttons.length; i++) {
    var button = buttons[i];
    // Check if that button is the one you want
    // Look for some unique attribute, class name, etc.
    if (button.className == 'btnUniqueClassName') {
        // The button was found
        button.disabled = true;
    }
}
var buttons=document.getElementsByTagName('button');
对于(变量i=0;i
谢谢。我不应该触碰后面的代码。我更新了我的答案,建议只使用Javascript代码。我把第二个解决方案放回原处。非常感谢。。你真了不起,不客气!是否有一种特别适合您的解决方案?如果答案解决了您的问题,请将其标记为已接受(通过单击答案旁边的复选标记)。
var buttons = document.getElementsByTagName('button');
for (var i = 0; i < buttons.length; i++) {
    var button = buttons[i];
    // Check if that button is the one you want
    // Look for some unique attribute, class name, etc.
    if (button.className == 'btnUniqueClassName') {
        // The button was found
        button.disabled = true;
    }
}