ASP.Net MVC - 通过jquery从表中获取所选行

时间:2011-04-27 05:46:41

标签: jquery .net asp.net-mvc razor

cshtml代码:

        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>

                }

        }

我试图通过jquery命令获取当前所选行的frame.Id值。 我试图让它超越自己。即在页面上的其他位置单击提交按钮时。我已经定义了以下功能:

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

    });

这很有用 - 我相信我找到了正确的标签,但不确定它是否是当前实际选择的标签。我总是为children.length获得2的值,但不确定那指向的是什么。

所以,在上面的函数中是否可以确定(最终)存储在当前所选标记中的@ frame.Id值。

我对此很新,这段代码是由其他人编写的,所以我只是想找到自己的方式。

TIA

杰森

1 个答案:

答案 0 :(得分:1)

从我可以看到,tr中包含frame.Id值的隐藏字段。所以你可以尝试从这个隐藏的字段中读取值:

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