我有一个javascript代码,其中我使用innerHTML属性访问aspx页面中的div,并希望执行以下操作:1)获取该div标签的全部内容。
2) 将该 div 标签的全部内容绑定到一个变量 res 。
3) 将 res 中的值赋予 aspx 页面中的隐藏控件,最后
4) 从隐藏字段中呈现该值并在后面的 aspx.cs 代码中使用它。
我的aspx页面如下
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
<script type ="text/javascript" language = "javascript">
function inject()
{
var res = document.getElementById('<%= div.ClientID %>').innerHTML.toString();
document.getElementById('hidden1').value = res;
}
</script>
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<asp:Button ID="BtnAdd" runat="server" Text="Add" onclick="BtnAdd_Click" Width="67px" />
<div id = "div" runat ="server">
</div>
<input type = "hidden" id = "hidden1" value = "" />
<asp:Label ID = "lbl" Text = "Final answer goes here" runat = "server"/>
</asp:Content>
以及访问它的代码如下
public partial class _Default : System.Web.UI.Page
{
public string str = "* is the capital of *";
StringBuilder sb = new StringBuilder();
public static int count = 1;
public string res;
protected void Page_Load(object sender, EventArgs e)
{
StringBuilder htm = new StringBuilder();
for (int j = 0; j < str.Length; j++)
{
if (str[j] == '*')
{
string res = "<input type = 'text' id ='" + count + "' value = ''/>";
htm = htm.Append(res);
count++;
}
else
{
htm = htm.Append(str[j]);
}
}
div.InnerHtml = htm.ToString();
}
protected void BtnAdd_Click(object sender, EventArgs e)
{
this.Page.RegisterStartupScript("<Script>", "<Script type='text/javascript'> inject();</Script>");
string res = Request.Form["hidden1"];
lbl.Text = res;
}
}
现在代码正在执行,但我没有将 innerHTML 中的全部内容放到后面代码中的 res 变量上。整个内容是指标记中的所有内容。我确定我在某个地方搞砸了,或者如果它是错误的方法,我可以建议一个更好的方法吗?
感谢您抽出宝贵时间