2012-04-16 5 views
0

테이블을 만들 때 jquery의 tempate를 사용합니다. 사용자가 내 테이블의 한 셀을 클릭하면이 셀에 "name"속성을 추가합니다.컨트롤러에 셀 TD를 가져올 수 있습니까?

어떤 셀을 클릭했는지, 어떤 값으로 가져 왔지만 컨트롤러에 값 셀을 검색하지 못했습니다. asp mvc. FormCollection을 사용하지만 내 셀을 찾지 못했고 request.form [ "cellTd"]도 시도했지만 작동하지 않습니다. 내 컨트롤러에 셀이 null이고 폼에 cellTd 요소가 없습니다.

도움 주셔서 감사합니다.

내보기 :

@using (Html.BeginForm("Action", "Test", FormMethod.Post)) 
{ 
<div id="TableToFill"></div> 
<button id="send" value="send" name="btn" type="submit">send</button> 
} 

내 템플릿 :

<script id="TableTemplate" type="text/x-jquery-tmpl"> 
<table class="Table"> 
<tbody class="BodyTable"> 
    {{each list}} 
    <tr class="Item">  
     <td description="Standard${Name}" >${this.Value}</td> 
     {{if $index == 0}} 
     <td ><input description="high${Name}" value="" type="text" /></td> 
     {{/if}} 
    </tr>  
    {{/each}} 
</tbody> 
</table>  
</script> 

내 코드 JQuery와

<script type="javascript"> 
$.getJSON("getTable", params, function (items) { 
     $("#TableTemplate").tmpl(items).appendTo("#TableToFill");   
    }); 
    $(".Table tbody .Item td").click(function(){ 
    $(this).attr("name","cellTd"); 
    }); 
</script> 

내 컨트롤러

public class TestController : controller 
{ 
    public ActionResult(FormCollection form) 
    { 
     String cell=Request.Form["cellTd"]; 
    } 
} 
+0

@Ropstah, 내가 내 컨트롤러에 보낼 multiselected 멀티 테이블을 가지고있다. 간단한 입력으로 보낼 수 없습니까? 그렇지 않으면 이름이있는 모든 요소를 ​​보내는 함수를 만듭니다 ... – Zoners

+0

컨트롤러에서 받고 싶은 정확한 값은 무엇입니까? – Ropstah

+0

@Ropstah 속성 이름이 채워진 모든 요소를 ​​수신하고 싶습니다. 내 셀에 다른 값을 가지고, 나는 간단한 텍스트 (문자열 또는 int) 또는 balise img (나는 balise img에서 속성의 설명을 추가하여 이미지의 가치를 알 수있다) – Zoners

답변

0

당신은 tdclick 이벤트 내부에 요청을 보내야합니다 :

$(".Table tbody .Item td").click(function(){ 
    //you are setting the name to "CellTd" 
    $(this).attr("name", "cellTd"); 

    var tdNameValue = $(this).attr("name"); //will always give "cellTd" as it is set above... 

    //make your ajax request here 
    $.ajax({ 
     url: 'urltocontroller', 
     data: {tdName : tdNameValue}, 
     dataType: 'json', 
     success: function(r) { 
      //successcallback 
     }, 
     type: 'POST' 
    }); 
}); 

이제 여기에 값을 검색 할 수 있습니다

public class TestController : controller 
{ 
    public ActionResult(FormCollection form) 
    { 
     String cell=Request.Form["cellTd"]; 
    } 
} 
관련 문제