ASP.Net MVC - выбрать <tr>строку из таблицы через JQuery - PullRequest
1 голос
/ 27 апреля 2011

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>

                }

        }

Я пытаюсь получить значение frame.Id для текущей выбранной строки с помощью команды jquery. Я пытаюсь получить это вне себя. т.е. когда кнопка отправки нажата в другом месте на странице. Я определил следующую функцию:

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

    });

это работает - насколько я полагаю, я нахожу свой правильный тег, но не уверен, действительно ли это тот, который на данный момент выбран или нет. Я всегда получаю значение 2 для children.length, но не совсем уверен, на что это указывает.

Итак, возможно ли в вышеуказанной функции определить (в конечном итоге) значение @ frame.Id, сохраненное в текущем выбранном теге.

Я очень новичок в этом, и этот код был написан кем-то другим, поэтому я просто пытаюсь найти свой путь.

ТИА

Jason

1 Ответ

1 голос
/ 27 апреля 2011

Из того, что я вижу, у вас есть скрытое поле внутри tr, содержащее frame.Id в качестве значения.Таким образом, вы можете попробовать прочитать значение из этого скрытого поля:

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