1

我正在开发一个 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>

WhereSignal()方法正在返回一些数据。例如它返回:

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.

4

1 回答 1

2

解决方案 1:使用Microsoft AJAX Toolkit中的DynamicPopulate 控件- 非常容易实现

解决方案 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); 
}
于 2012-08-16T13:40:10.940 回答