如何在Asp.net中回发后维护标签的价值?

时间:2014-01-03 15:31:00

标签: c# asp.net postback

在asp.net页面中,我需要知道如何通过单击html按钮来保持特定标签赋值的值。回发完成后。

详细代码:

 <table>
        <tr>
            <td><asp:Label ID="lbl1" runat="server" ClientIDMode="Static">Before Changing</asp:Label></td>

            <td><asp:Label id="lbl2" runat="server" ClientIDMode="Static"></asp:Label></td>

            <td><asp:TextBox ID="txtbox" runat="server"></asp:TextBox></td>

</tr>

        <tr>
            <td><asp:Button ID="btnasp" runat="server"  Text="ASP Button" Height="50px" Width="150px" OnClick="btnasp_Click"/></td>

            <td><input type="button" id="btnhtml" value="HTML Button" onclick="showlabel()"  style="height:50px; width:150px"/></td>
        </tr>

    </table>

脚本

 <script type="text/javascript">
    function showlabel() {
        $('#lbl1').text("After Changing");

        }
</script>

cs code

   protected void btnasp_Click(object sender, EventArgs e)
    {

        txtbox.Text = lbl1.Text;
    }

OutPut

enter image description here

如果单击HTML按钮,更改前的标签文本将在更改后更改为。然后在更改值显示在文本框中后单击ASP按钮。

这是在不在隐藏字段中添加值而不使用服务器控件到html按钮的情况下完成的。这怎么可能?

1 个答案:

答案 0 :(得分:9)

label转换为span元素,html元素(如spandiv)没有ViewState。这些文本或html都没有发送 服务器端,如form元素。

发布的表单元素是输入元素以及hidden字段。 ASP.net使用隐藏字段和输入元素维护ViewState。

我担心你必须使用隐藏字段来维护回发之间的标签值。

<强> HTML

<input id="hdnLabelState" type="hidden" runat="server" >

的Javascript

document.getElementById('<%= hdnLabelState.ClientID %>').value = "changed value of span";

服务器端(代码隐藏)

string changedLabelValue = hdnLabelState.Value;