在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
如果单击HTML按钮,更改前的标签文本将在更改后更改为。然后在更改值显示在文本框中后单击ASP按钮。
这是在不在隐藏字段中添加值而不使用服务器控件到html按钮的情况下完成的。这怎么可能?
答案 0 :(得分:9)
label
转换为span
元素,html元素(如span
或div
)没有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;