Поиск текущей строки, редактируемой в asp: GridView с использованием jQuery - PullRequest
0 голосов
/ 20 марта 2012

В настоящее время у меня есть asp: GridView, который отображает несколько BoundFields, а затем один asp: TemplateField, который содержит asp: DropDownList.Я могу добавить несколько строк в сетку и редактировать каждую из них по отдельности.

Мне нужно выяснить, как мне получить выбранное значение текущего DropDownList, редактируемого в текущей строке.

Я попытался использовать следующий код в функции, которую я вызываю для кнопки ссылки:

var product = $('.selectedItem').val();

Но этот код только когда-либо возвращает значение той строки, которая находится первой.Поэтому, хотя я редактирую DropDown в 3-й строке и выбираю 5-е значение, если значение 1-й строки было 2, оно будет возвращать только два.

Мой HTML-код для DropDown:

 <asp:TemplateField HeaderText="Vendor">
     <ItemTemplate>
        <asp:HiddenField ID="hidEntityID" runat="server" Value='<%# Eval("SomeID") %>' />
        <asp:DropDownList ID="ddlList" runat="server" DataSourceID="dsList" DataTextField="Value" DataValueField="ID" Font-Names="Verdana" Font-Size="11px" ForeColor="#2D2D2D" ClientIDMode="Static" CssClass="selectedItem" OnDataBound="ddlEntity_DataBound">
            <asp:ListItem Value="-1">--- Select ---</asp:ListItem>
        </asp:DropDownList>
        <asp:ObjectDataSource ID="dsList" runat="server" SelectMethod="GetList" TypeName="SomeClass" OldValuesParameterFormatString="original_{0}"></asp:ObjectDataSource>
     </ItemTemplate>
 </asp:TemplateField>

Моя кнопка ссылки в сетке:

 <ItemTemplate>
       <a href="#" onclick='addEditDetail(<%# Eval("ID") %>)'>Detail</a>
 </ItemTemplate>

В основном мне нужно найти текущий индекс строки, которую я редактирую или выбираю для «редактирования», а затем только получить значениеэтого конкретного DropDown.

Любые предложения будут удивительными.

Спасибо

Ответы [ 2 ]

2 голосов
/ 20 марта 2012

Да, он всегда вернет первый выпадающий список, поскольку ваш селектор запрашивает кнопку ссылки по умолчанию. $ ('. selectedItem') вернет все выпадающие списки, оставив первый по умолчанию.

Ваше событие нажатия кнопки ссылки должно быть:

 <ItemTemplate>
       <a href="#" onclick='addEditDetail(this)'>Detail</a>
 </ItemTemplate>

 function addEditDetail(linkBtn)
{
    var currentDropDown = $(linkBtn).closest("tr").find("select[id*='ddlList']");
    alert(currentDropDown.val());
}
0 голосов
/ 20 марта 2012

Почему бы вам не установить значение идентификатора элемента управления Dropdown в качестве идентификатора записи?Таким образом, вы можете использовать значение идентификатора, переданное в addEditDetail, и получить конкретный раскрывающийся список.Я бы установил идентификатор выпадающего меню на "Dropdown" + Eval("ID") и использовал бы его в качестве идентификатора в JQuery: $("#Dropdown" + ID).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...