繁体   English   中英

在ASP.NET MVC中更改下拉列表的选定项目时,如何从数据库填充文本框

[英]How to fill a textbox from database when dropdownlist's selected item changed in ASP.NET MVC

我是MVC和Java语言的新手。 我正在尝试为管理员创建“更改用户信息”页面。 我有一个下拉列表,其中列出了注册用户和一些文本框,用于输入有关用户的各种信息(例如,姓名,姓氏)。 我的目标是在使用下拉列表选择用户时,使用用户当前信息自动填充文本框。 但是由于MVC不是事件驱动的,并且没有回发,所以我不完全知道该如何完成。 我认为我必须通过dropdownlist的onchange触发控制器方法,并且我认为唯一的方法是使用JS,AJAX或类似的东西。

注意:我可以在Controller中完成所有数据库工作。

到目前为止,我认为这段代码是:

.... @Html.DropDownList("Users", ViewBag.Users as SelectList, "Select a User", new {  id="UserId", onchange="userChanged()"} ) ....





.... <script type="text/javascript">

function userChanged() {

 } 

</script> ....
$(document).ready(function(){
        $("#UserId").change(function () {
        if ($(this).val() != "" && $(this).val() != undefined && $(this).val() != null)
            $.ajax({
                type: "GET",
                url: "/[ControllerName]/[ActionName]/" + $("#UserId").val()
            })
            .success(function (data) {
                // 'data' consits of values returned from controller.
                // fill textboxes with values in 'data'
            });
    });
});

希望这对您有所帮助。

试试这样的东西(小提琴)

<select id="select1">
    <option value="userId1">User 1</option>
    <option value="userId2">User 2</option>
    <option value="userId3">User 2</option>
</select>

<textarea id="txt1">
</textarea>

$(function(){
    $('#select1').change(function(){
        $.ajax({
            url: "YourAction", // Url.Action()
            data: {
                userId: $(this).val()
            },
            success: function(data) {
                $('#txt1').val(data);
            }
        });
    });
});

您可以将控制器操作方法定义为JsonResult ,然后使用AJAX从您的jquery中调用它。 使用AJAX获取数据后,您可以对其进行解析,并使用该数据填充适当的文本框。 您可以使用以下代码来介绍如何在userChanged方法中调用ajax:

$.ajax ({
 url: '/Controller/Action',
 type: 'GET',
 async: true,
 cache: false,
 data: { userId: useridofwhichdatatobefetched},
 success: function (result) {
  $("#usernametextbox").val = result.userName; }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM