如何在按下ASP:按钮时使html元素包含文本

本文关键字:html 元素 文本 包含 按钮 ASP | 更新日期: 2023-09-27 18:13:41

我有一个div,其中包含一些文本。

我也有一个asp:按钮,当按下我想检索这个文本。然而,似乎只要我按下按钮,DIV的内容就会重置-很可能是由于回发。

DIV有runat=server"。有没有人有任何想法,可以做些什么,使这个DIV保留其内容按下按钮?在按下按钮之前,数据被操纵了无数次,所以我想尽量避免每次更新会话。

如何在按下ASP:按钮时使html元素包含文本

试试这样:

getText = function(){
    alert($("#<%=Panel1.ClientID%>").text());
    return false;
}   
<asp:Panel ID="Panel1" runat="server">
</asp:Panel>
<asp:Button ID="Button1" runat="server" OnClientClick="return getText();" ... /> 

你也可以试试:

$("#<%=Button1.ClientID%>").click(function(){
    alert($("#div1").text());
    return false;
});

一种方法是在您的标记中抓取按钮单击事件,将div内容存储在隐藏字段中,然后在按钮单击中手动触发回发

尝试使用asp:Panel。它呈现为DIV,您可以在页面生命周期的所有点访问其所有属性。

另一种方法是使用Ajax。具体来说- updatepanel控制

您可以通过调用按钮的onClientClick事件中的JavaScript函数将div内容存储在隐藏字段中-它将在OnClick事件之前执行,在回发之前执行。这样,就不需要手动触发回发了。

假设你有一个div,一个隐藏字段和按钮与onClientClick和OnClick事件。使用简单的JavaScript函数:

<div id="myDiv" runat="server" ></div>
<asp:Button ID="btnGetDiv" runat="server" Text="Get div value" OnClick="getValueOnServer" OnClientClick="setHiddenFieldF()"/>
<asp:HiddenField ID="hf" runat="server" />
<script type="text/javascript">
    function setHiddenFieldF() {
        var nevValue = document.getElementById('<%= myDiv.ClientID %>').innerHTML;
        document.getElementById('<%= hf.ClientID %>').value = nevValue;            
    }
</script>

然后,在服务器上,只使用隐藏字段的值

您无法读取div的内容,因为它没有在回发中发送到服务器。只发送形式元素(<input><textarea><select>等)的值。

如果您真的想读取DIV的内容,您可以将其复制到隐藏的输入(如Kavousi所写)。

只需添加隐藏字段到您的页面:

<asp:HiddenField ID="hidden" runat="server" />

然后在代码后面:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        Page.Form.Attributes["onsubmit"] = string.Format(@"$(""#{0}"").val($(""#{1}"").html());", hidden.ClientID, div.ClientID);
    }
}

(div是你的div名称)。

您可以通过阅读hidden.Value来读取div的内容。