Javascript 需要AJAX工作流的帮助吗
很抱歉,我无法对标题进行更详细的描述,我将在下面详细阐述: 我有一个web应用程序,我想在其中实现一些AJAX功能。目前,它正在运行ASP.NET 3.5和VB.NET codebehind。我当前的“问题”是,当用户单击列表中的某个项目时,我希望能够动态地填充DIV。列表项当前包含应显示在DIV中的内容的Javascript 需要AJAX工作流的帮助吗,javascript,asp.net-ajax,Javascript,Asp.net Ajax,很抱歉,我无法对标题进行更详细的描述,我将在下面详细阐述: 我有一个web应用程序,我想在其中实现一些AJAX功能。目前,它正在运行ASP.NET 3.5和VB.NET codebehind。我当前的“问题”是,当用户单击列表中的某个项目时,我希望能够动态地填充DIV。列表项当前包含应显示在DIV中的内容的HttpUtility.UrlEncode()(ASP.NET)字符串 例如: <li onclick="setFAQ('The+maximum+number+of+digits
HttpUtility.UrlEncode()
(ASP.NET)字符串
例如:
<li onclick="setFAQ('The+maximum+number+of+digits+a+patient+account+number+can+contain+is+ten+(10).');">
What is the maximum number of digits a patient account number can contain?</li>
“>
患者帐号最多可以包含多少位数
我可以使用JavaScript函数unescape()
部分解码字符串,但它不能完全解码字符串。我更愿意将faq ID传递给JavaScript函数,然后以某种方式从数据库中提取信息
我99%确信不可能从JavaScript函数中调用ASP函数,所以我有点困惑。我对AJAX/ASP.NET有点陌生,所以这对我来说是一次学习经历 我认为只要使用
HttpUtility.HtmlEncode
就可以解决您的问题。但是我不确定我是否完全遵循了:\首先,如果你在页面加载时从数据库中提取问题,你很可能也有所有的答案,所以只要继续使用你当前的方法,就像你的代码示例那样将答案塞进页面。除非你的FAQ列表中有成千上万的问题,否则通过点击列表项上的db来“AJAX方式”并不会给你带来太多问题。如果它确实有那么多问题,那么直接列表无论如何都是错误的方式
第二,在您的方法中需要记住两件事:
<li onclick="setFAQ('This line's
multi line and has a single quote in it!')"
更好的方法是,使用.NET的ListItem
对象,并将HtmlatTributeNCode
全部删除:
ListItem faqItem = new ListItem(questionString);
faqItem.Attributes.Add("onclick", String.Format("setFAQ({0})", json.Serialize(answerString)));
html部分会自动为您转义,而且更干净
至于javascript,您不必在setFAQ()
中解码任何内容。把它的论点写进你的“回答”部分:
+回答得很好,我不敢相信今天之前没有人投票通过。@magnifico:谢谢。是什么让你想到这个老问题的?只是浏览未回答的问题列表;)
ListItem faqItem = new ListItem(questionString);
faqItem.Attributes.Add("onclick", String.Format("setFAQ({0})", json.Serialize(answerString)));
function setFAQ(answer) {
document.getElementById('answer').innerHTML = answer
}