我有一个编辑aspx页面内容的函数。但是aspx文件根本没有改变。我希望自动编辑aspx文件内容
这是功能:
protected void add_Click(object sender, EventArgs e)
{
content.InnerHtml = content.InnerHtml + "<br/> <h3>" + headertambahan.Text + "</h3> <p p style=\"font-size:12px; font-weight:normal;\">" + isitambahan.Text + "</p>";
}
我该怎么办?
答案 0 :(得分:1)
您需要:
1)确保按钮导致回发。如果没有回发,则不会显示任何更改。您可以通过检查按钮的属性来确保这一点。 注意:如果您正在使用asp:Button
,则默认会导致回发。如果您为点击事件使用了其他内容,则需要设置属性AutoPostBack="true"
。
2)您可以将content
对象包含在UpdatePanel
的标记中,然后在按钮中点击.Update()
上的UpdatePanel
方法,但感觉不错对你在这里所做的事情来说,这可能有点过头了。
答案 1 :(得分:1)
听起来您可能想考虑使用literal
。以下是W3Schools的一个例子,如果我理解你的问题,那就完成了你想要做的事情:
http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_literal2
另外 - 请记住使用runat="server"
。
答案 2 :(得分:1)
为什么不在更新DOM元素的按钮单击处理程序上调用javaScript函数。
HTML:
<div id="content">
<p>This is nothing</p>
</div>
<asp:Button ID="AddContent" runat="server" OnClick="AddContent_Click" />
JS:
<script type="text/javascript">
function ChangeContent(headertambahan, isitambahan)
{
$('#content').html($('#content').text() + "<br/> <h3>" + headertambahan + "</h3> <p style=\"font-size:12px; font-weight:normal;\">" + isitambahan + "</p>");
}
</script>
服务器端:
protected void AddContent_Click(object sender, EventArgs e)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "myScript", "ChangeContent('" + headertambahan.Text + "','" + isitambahan.Text + "');", true);
}
------------------- 解决方案:2 (稍后更新问题)
永久更改为您的文件:
使用所需内容更新页面的特定部分。试试这个,
HTML:
<div id="content">
<p>This is nothing</p>
<p id='updateBox'></p>
</div>
<asp:Button ID="FileContentUpdate" runat="server" OnClick="FileContentUpdate_Click" />
服务器端:
protected void FileContentUpdate_Click(object sender, EventArgs e)
{
string filePath = @"F:\Stackoverflow\24099577\DomManipulation.aspx";
string[] content = File.ReadAllLines(filePath);
for (int i = 0; i < content.Length; i++)
{
content[i] = content[i].Replace("<p id='updateBox'></p>", "<br/> <h3>" + headertambahan.Text + "</h3> <p style=\"font-size:12px; font-weight:normal;\">" + isitambahan.Text + "</p>");
}
File.WriteAllLines(filePath, content);
Response.Redirect(Request.RawUrl);
}