我正在创建一个使用ASP.net的网站,如果您以管理员身份登录,则可以编辑当前页面文本(这样我就不必为了小的更改而一直更新网站,我可以在网上自己编辑页面。所有页面数据都存储在SQL数据库表中。每个条目只是“ID”和“PAGECONTENT”。现在,我使用SQLDataSource获取数据并将其放入我页面上的FormView中。这一切都有效。我创建了一个按钮,只有在我以站点管理员身份登录时才可见。我需要这样做,当我点击按钮时,显示页面内容的文本标签变成了一个TextArea供我编辑,然后我可以单击“完成”按钮并将其更新到数据库表。我可以做更新部分,我只是不知道我应该如何以可编辑的方式显示文本......
答案 0 :(得分:1)
您需要一种称为Rich Text Editor控件的东西。这将为您提供带有工具栏等的Microsoft Word样式界面,它将解析您存储在数据库中的html。
那里有很多免费的。常用的是Ajax Control Toolkit中包含的那个。
您应该使用nuget将最新的Ajax Control Toolkit安装到您的项目中。
有很多教程可以解释如何使用这个控件:
答案 1 :(得分:1)
POST方案:就像您有一个仅在您以网站管理员身份登录时才可见的按钮,只有当您单击编辑按钮时单击完成按钮时才会显示文本区域。< / p>
除非您使用的是ajax界面,否则一个好的做法是为您的数据库条目编辑提供专用页面。当从详细视图更改为编辑视图并在保存时再次POST时,POST会变得复杂且不安全。这只是一个想法。
GET-then-POST场景:为您的数据库条目提供专用编辑页面。让我们说:/editpage.aspx?id=1
。在该页面上有一个完成按钮,用于回发并保存您的工作。
答案 2 :(得分:0)
http://www.w3schools.com/aspnet/control_htmltextarea.asp
也许这就是你要找的东西。
<script runat="server">
Sub submit(sender As Object, e As EventArgs)
p1.InnerHtml = "<b>You wrote:</b> " & textarea1.Value
End Sub
</script>
<html>
<body>
<form runat="server">
Enter some text:<br />
<textarea id="textarea1" cols="35" rows="6" runat="server" value="PUT_YOUR_TEXT_HERE_to_prepopulate_the_Data" />
<input type="submit" value="Submit" OnServerClick="submit" runat="server" />
<p id="p1" runat="server" />
</form>
</body>
</html>