2011-04-27 2 views
1

cshtml 코드를 통해 테이블에서 행을 선택 얻을 : 나는 JQuery와 명령을 통해 현재 선택된 행의 frame.Id 값을 얻기 위해 노력하고ASP.Net MVC는 - JQuery와

 foreach (Frame frame in Model.ListFrames) 
     {  
      <tr class="clickME" title="fred"> 
       <input type="hidden" name="NameId" value="@frame.Id" style="border:0"/> 
       <input type="hidden" name="TypeId" value="@frame.Type" /> 
       <input type="hidden" name="thirdone" value="@frame.Id" /> 
       <td> 
        <a href="#" class="up"><img src="../../Content/img/up.jpg" style="border:0px" alt="Move up" /></a> 
        <a href="#" class="down"><img src="../../Content/img/down.jpg" style="border:0px" alt="Move down"/></a>   
       </td> 

       @if(frame.Type == string.Empty) 
       { <td> 
         <textarea rows="1" cols="15" id="Name" name="Name" onclick="display('@frame.Id', this); LoadImage(this);" 
          onchange="LoadImage(this);" onkeyup="LoadImage(this);" style="height:20px">@frame.Name</textarea> 

        </td> 

        <td> 
         @(Html.DropDownList("MyFont", new SelectList((IEnumerable)ViewData["Font"], "Text", "Value", @frame.Font), 
          new { onclick="LoadImage(this);", onchange = "LoadImage(this);" })) 
        </td> 
        <td> 
         @(Html.DropDownList("MyColor", new SelectList((IEnumerable)ViewData["Color"], "Text", "Value", @frame.Color), 
          new { onclick="LoadImage(this);" , onchange = "LoadImage(this);" })) 
        </td> 
        <td> 
         @(Html.Telerik().NumericTextBox() 
           .Name("onTime" + frame.Id) 
           .MinValue(0) 
           .Value(frame.OnTime) 
           .InputHtmlAttributes(new { style = "width:50px;" }) 
           ) 
        </td> 
        <td> 
         @(Html.DropDownList("onTransition"+frame.Id, 
          new SelectList((IEnumerable)ViewData["Transition"], "Value", "Text", @frame.Transition), 
          new {onclick="LoadImage(this);"}) 
          ) 
        </td> 


       } 
       else 
       { 
        <td colspan="3"> 
        <textarea rows="1" cols="15" id="Name" name="Name" readonly="true" onclick="display('@frame.Id', this);" style="height:20px">@frame.Name</textarea> 
        </td> 
        <td style="display:none;"> 
         @(Html.DropDownList("MyFont", new SelectList((IEnumerable)ViewData["Font"], "Text", "Value", @frame.Font), 
          new { onclick = "LoadImage(this);", onchange = "LoadImage(this);" })) 
        </td> 
        <td style="display:none;"> 
         @(Html.DropDownList("MyColor", new SelectList((IEnumerable)ViewData["Color"], "Text", "Value", @frame.Color), 
          new { onclick = "LoadImage(this);", onchange = "LoadImage(this);" }))</td> 

       } 

     } 

. 나는 그 자체의 외부에서 그것을 얻으려고 노력하고있다. 즉, 제출 버튼이 페이지의 다른 곳에서 클릭 될 때. 나는 다음과 같은 기능을 정의했습니다 :

$(".flashing").click(function() { 
     var tr = $(this).find(".clickME"); 
     alert(tr.children.length); 

    }); 

이 작품 - 그래서 내 정확한 태그를 찾을 생각만큼 있지만, 실제로 현재 선택 여부 년대 하나 확실하지에. 나는 항상 아이들을위한 2의 가치를 얻습니다. 길이는 무엇인지 가리키고 있습니다.

그래서 위의 함수에서 현재 선택된 태그에 저장된 @frame.Id 값을 (궁극적으로) 결정할 수 있습니까?

저는이 책에 대해 매우 익숙하며이 코드는 다른 사람이 작성 했으므로 이제 막 생각하고 있습니다.

TIA

제이슨 난 당신이 값으로 frame.Id를 포함하는 tr 내부에 숨겨진 필드를 볼 수있는에서

답변

1

. 그래서 당신은이 숨겨진 필드에서 값을 읽는 시도 할 수 있습니다 : 당신이이 정확히 사용하려고하면

$('.flashing').click(function() { 
    var tr = $(this).find('.clickME'); 
    var id = $(tr).find('input[name="NameId"]').val(); 
    alert(id); 
}); 
+0

안녕 대린 불행하게도 내가 "정의되지 않은"얻을. 나는 .find ('select'를 포함하는 입력의 다른 순열을 시도했다. 그러나 그것도 작동하지 않는다. 동일한 결과. .val()을 제거하면 오브젝트 오브젝트가 "something"을 찾았다 고 믿는다. 아직 여러 행이있는 경우 현재 행을 찾을 수있는 방법이 확실하지 않습니다. 아니면 그냥 "알지"못합니까? 고마워요. – Jason