我正在开发一个ASP.net应用程序,我需要从以下代码中选择aspx
文件中的值:
<td align="right"> Signal </td>
<td> <select id = "signal" name = "signal">
<%
SqlDataReader Dr = Signal();
while (Dr.Read())
{
Response.Write("<option> " + Dr["SignalID"].ToString() + " </option>");
}
Dr.Close();
%>
</select>
</td>
<td align = "right"> Data </td>
<td> <input type="textarea" id = "data"/> Data need on the basis of above selected data </td>
Signal()
方法返回某些数据的位置。例如,它返回:
2005, 2006, 2007
以上数据的原始代码是:
<select>
<option value="2005">Volvo</option>
<option value="2006">Saab</option>
<option value="2007">Mercedes</option>
</select>
但我遇到的问题是,我希望这个选定的变量返回到相同的aspx.cs
文件而不提交表单。这样我就可以将数据显示在文本区域中。
例如:
用户打开some.aspx
页面,然后页面上会出现一个表单。默认情况下,它会显示2005
并根据该信息text area will
加载。
当用户选择2006
时,并根据动态加载的数据text area
。
我知道我们可以使用Ajax和Jquery,但我不能使用Jquery and Ajax
。
答案 0 :(得分:2)
解决方案1:使用DynamicPopulate control中的Microsoft AJAX Toolkit - 非常容易实现
解决方案2:正如您所指出的那样使用jQuery AJAX API。
任何一种解决方案都需要WebMethod。
[System.Web.Services.WebMethod(BufferResponse=false)]
public string GetTextAreaData(int selectedIndex)
{
//implementation code
}
解决方案1非常简单,我甚至不会发布一个例子。只需按照上面的链接,你应该全部设置。但我会这样说,阅读与ToolkitScriptManager相关的性能调整,比如将其设置为发布模式,组合脚本等。
第二种解决方案也很简单,但要求您自己解析结果(有点)。 jQuery与前几年相比已经走了很长一段路,而且不再那么糟糕了。
创建一个OnChange事件处理程序(JS方法)并将其附加到下拉列表中。在处理程序中,调用类似这样的东西:(注意,这是未经测试的代码,它可能不适用于简单的复制/粘贴,但你明白了。)
function GetTextAreaData() {
var data = this.selectedIndex; // or whatever you want to send to the server
var options = {
type: "POST",
url: "Default.aspx/GetTextAreaData",
data: "{selectedIndex:" + data + "}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
$('#textAreaId').val(msg);
}
};
$.ajax(options);
}