2011-08-23 205 views
2

我使用的是asp.net mvc2.I有一个列表框和文本框,当我从列表框中选择一个项目时,该项目的相应值应该出现在来自database.please的文本框中asp.net mvc2根据列表框值从数据库中选择值

+0

那你试试这么远吗?你怎么加载来自数据库的数据?请分享一些代码! –

+0

我没有任何code.my要求是这样的例如:我有m achine名称列表框中,当我选择该机器的一个项目价格进来的文本框..如何在mvc2 asp.net – joms

回答

1

您应该使用JavaScript处理列表框选择更改。

并阅读有关Ajax,它无需重新加载页面从DB获取数据。

添加

例如,你如何处理列表框中选择更改。

@Html.ListBox("nam",new SelectList(new string[]{"opt1","opt2"}),new {onchange = "javaScript:actch()", id = "namid"}) 
<script type="text/javascript"> 
    function actch() { 
     alert(document.getElementById("namid").value); 
    } 
</script> 

值“document.getElementById(”namid“)。value”包含您选择的选项。

您应该将此值发送到服务器,并收到请求

@Html.ListBox("nam",new SelectList(new string[]{"opt1","opt2"}),new {onchange = "javaScript:actch()", id = "namid"}) 
<script type="text/javascript"> 
    function actch() { 
       $.ajax({ 
         url: "your url", 
         type: "POST", 
         data: "id = " + document.getElementById("namid").value, 
         success: function (data) { 
          // action on success 

          document.getElementById("TextBoxId").value = data;    
         }, 
         error: function (jqXhr, textStatus, errorThrown) { 
          // action on fail        
         }, 
         complete: function() { 

         } 
        }); 
    } 
</script> 

你必须写一个服务器请求部分,并配置阿贾克斯。 (我不得不使用jQuery)

补充:服务器请求部分(例如)

[HttpPost] 
    public MvcHtmlString Detail(string id) 
    { 
     var d = _db.GetVehicle(Convert.ToInt32(id)); 
     var sb = new StringBuilder(); 
     sb.AppendLine(string.Format("Type: {0}</br>", d.Type)); 
     sb.AppendLine(string.Format("Brand: {0}</br>", d.Brand)); 
     sb.AppendLine(string.Format("Model: {0}</br>", d.Model)); 
     sb.AppendLine(string.Format("Number: {0}</br>", d.Number)); 
     sb.AppendLine(string.Format("Year: {0}</br>", d.Year)); 
     sb.AppendLine(string.Format("Cost: {0}</br>", d.Cost)); 
     return new MvcHtmlString(sb.ToString()); 
    } 

URL看起来像:myController的/详细信息/

DATA阿贾克斯: “ID =” +文件.getElementById(“namid”)。值

PS有的一个编辑/破坏我ansver,它不是标(

+0

可以给你的JavaScript代码 – joms

+0

我写了一些代码给你。 –

+0

可以任意一个给服务器请求相同的部分 – joms

0

你的问题有点含糊,但基本上这是如何能够做到:

您可以通过张贴在更改事件的列表框的值jQuery的(或您的喜好的任何其他JS库)。然后,控制器给出的值回,然后您可以把在文本框中。

退房http://api.jquery.com/jQuery.post/

相关问题