2011-08-23 129 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/

相關問題