2014-09-30 2 views
0

webgrid에서 작업하지 않을 때 올바른 드롭 다운 목록을 가져 오는 데 문제가 있습니다.Html.DropDownList 올바른 오버로드로 RAZOR에서 선택된 항목을 가져옵니다.

는 그래서 내가 가진 것은 이것이다 :

@{ 
    : 
    : 
     var sql = "select * from AV_SDQ where StudentID = @0 and Assesment_key = @1"; 
     var scores = db.QuerySingle(sql, StudentID, Assesment_Key); 

     var q1 = db.Query("select score_item_enum_key as Col1, abc_value as Col1v from assesment_enum where assesment_key = @0 and seq = 1 order by enum_seq", Assesment_Key) 
          .Select(q1e => new SelectListItem { 
           Value = q1e.Col1.ToString(), 
           Text = q1e.Col1v.ToString() 
          }); 

     if(IsPost && !Request["buttonSubmit"].IsEmpty()){ 

      my methods to insert the data - work beautifully 

      scores = db.QuerySingle(sql, StudentID, Assesment_Key); 
     } 

    } 

    <form method="post"> 
    <table> 

    <tr><td> 
    Considerate of other people's feelings 
    </td><td> 
    @Html.DropDownList("Col1", "-- Select --", q1, scores.Col1, new ***[ WHAT DO I PUT HERE?????????]***) 
    </td></tr> 

    </table> 


    @{ if(scores != null) { 
     if(!IsPost){ 
      <p><input type="submit" name="buttonSubmit" value="Submit" /></p> 
      } 
     if(IsPost){ 
      <p><input type="submit" name="buttonSubmit" value="Submitted!" /></p> 
      } 

    }} 

    </form> 

나는 Html.DropDownList에 대한 과부하가 다섯 번째 인수 (새 HTML.Attributes)를 취 알고 있지만 내가 여기에 넣어 무엇의 총 손실입니다 .. ..... 내가 Gridview에 있었다면 나는 새로 생겼을 것이다. 하지만 새 것으로 바꿔야 할 것 같습니다. _ 나는 무엇을 넣어야할지 모르겠다. ____.

내 드롭 다운 목록이 작동하고 게시 할 때 내 DB의 값을 올바르게 설정하고 있습니다.

도움 주셔서 감사합니다.

+0

이 같이 거기에 CSS 클래스를 넣을 수 있습니다 :'새 {@class = "myCSSClass"}', 또는 당신은 단지 4 걸리는 다른 오버로드를 사용할 수 있습니다 드롭 다운 목록에 HTML 속성을 둘 필요가없는 경우 인수. – ekad

+0

예. 'htmlAttributes'를 전달해야하는 과부하가 없습니다. 네가 빠져 나간다면 네 개의 param overload로 대체 될 것이다. 그러나 일반적으로 매개 변수는 익명 개체를 허용합니다. 4 개 인수 –

+0

오버로드는 그 모든 5 – user3795152

답변

0

아래 답변로부터 다음

나는 4 매개 변수로 selectedValue를 설정 wanto. 이 경우 5 개의 매개 변수를 사용해야합니다. 당신이 당신의 드롭 다운리스트의 HTML 속성을 설정 할 필요가없는 경우

</td><td> 
    @Html.DropDownList("Col1", "-- Select --", q1, scores.Col1, new { @class = "smallertext"}) 
    </td></tr> 
0

, 당신은 그냥

@Html.DropDownList("Col1", "-- Select --", q1, scores.Col1, new { }) 
new { }를 넣을 수 있습니다 : 나는 나 IDDictionary htmlAttributes

이 작동하는 것입니다 개체의 옵션이 있습니다

그러나 드롭 다운 목록의 HTML 속성을 하나 이상 설정해야하는 경우 CSS 클래스 설정을위한 예제는 다음과 같습니다.

@Html.DropDownList("Col1", "-- Select --", q1, scores.Col1, new { @class = "smallertext" }) 

또는 하나의 HTML 속성을보다 더가 있다면

@Html.DropDownList("Col1", "-- Select --", q1, scores.Col1, new { @class = "smallertext", @disabled = "disabled" })