【问题标题】:How to set the value of a server control using javascript?如何使用 javascript 设置服务器控件的值?
【发布时间】:2013-10-01 16:25:43
【问题描述】:

如果我将服务器控件的 ClientID 传递给 javascript,我可以设置该服务器控件的值吗?

<script type="text/javascript">
    function FillTextFromPopup(text) {
        alert(text);
        var myID = '<%= Session["myID"].ToString() %>';
        alert(myID);

            document.getElementById(myID).value = 'abc';

    }
</script>


protected void LinkButton1_Click(object sender, EventArgs e)
    {
           GridViewRow gvRow = (GridViewRow)(sender as Control).Parent.Parent;
            int index = gvRow.RowIndex;
            LinkButton lnk = (LinkButton)gvRow.FindControl("LinkButton1");
            string id = lnk.ClientID;
            Session["myID"] = id;
            string myScript;
            myScript = "<script>window.open('PopUpTest1.aspx?',null,'height=750, width=1024,status= no,resizable= no, scrollbars=yes,toolbar=no,location=no,menubar=no'); </script>";
            ScriptManager.RegisterStartupScript(this, this.GetType(), "pop", myScript, false);

    }

【问题讨论】:

  • 你的错误是?因为它应该工作
  • 没有错误..它只是不工作,也在Visual Studio中输入document.getElementById(myID).value我无法找到.value
  • 尝试在html源元素中查找id等于myID的元素
  • 链接按钮将是锚标签(没有值属性)使用innerHTML或(innerText或textContent)
  • 这些在智能感知中都不可见。

标签: c# javascript asp.net


【解决方案1】:

您需要更改 LinkBut​​ton 控件的 innerText 属性:

改变

document.getElementById(myID).value = 'abc';

document.getElementById(myID).textContent = 'abc';

【讨论】:

  • 要了解关系,请阅读我之前的问题stackoverflow.com/q/19109200/2064292 我尝试了您的建议,但仍然无法正常工作.. 虽然我在警报中获得了正确呈现的链接按钮 ID。
  • 如果您查看开发人员工具中的 HTML 源代码,您是否可以检查警报 ID 是否实际上是该控件的 ID,或者它是否由于回发而更改?您可能需要在 LinkBut​​ton 上设置 ClientIdMode="Static"
  • 我已经这样做了,并且回发前后的 id 相同 ContentPlaceHolder1_GridView1_LinkButton1_1。我也试过把document.getElementById(myID).value = 'abc';改成document.getElementById('ContentPlaceHolder1_GridView1_LinkButton1_1').value = 'abc';还是不行。
  • 我已经更正了上面的解决方案。您需要使用 innerText 来设置 LinkBut​​ton 的文本
  • innerText 不是 w3c 兼容的属性,虽然它在某些浏览器上工作,但最大的兼容性是使用 2 innerText 和 textContent
猜你喜欢
  • 2019-12-28
  • 1970-01-01
  • 1970-01-01
  • 2013-06-21
  • 2013-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多