Tengo una vista de gridview en la que hay varias filas con opciones de Edit en cada fila. Entonces, cuál es exactamente el escenario, cada vez que hago clic en el botón EDIT , me redirigirá a la siguiente pestaña con el SAP ID de esa fila en la dropdownlist .
Pero actualmente lo que sucede es que, cuando hago clic en el edit button por primera vez, muestra solo un valor en la lista,
pero cuando hago clic por segunda vez, la lista me muestra dos valores. No quiero eso, solo quiero el valor de datos para el que hice clic en el botón Editar.
A continuación se muestra mi código GridView y ajax para valores vinculantes
VISTA EN CUADRÍCULA
<asp:GridView ID="grdSapDetails" runat="server" PageSize="10" AutoGenerateColumns="false"> <Columns> <asp:BoundField DataField="SAP_ID" HeaderText="Sap Id" /> <asp:BoundField DataField="SITE_NAME" HeaderText="Site Name" /> <asp:BoundField DataField="SITE_ADDRESS" HeaderText="Site Address" /> <asp:TemplateField HeaderText="Edit"> <ItemTemplate> <input type="button" onclick='return HighlightTabFunction(this)' value="Edit" id="btnEdit" /> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>AJAX
function HighlightTabFunction(a) { var row = a.parentNode.parentNode; var rowIndex = row.rowIndex - 1; var SAPID = row.cells[0].innerHTML; $.ajax({ url: "UBRDashboard.aspx/GETSTATEFROM_SAP", dataType: "json", type: "POST", contentType: 'application/json; charset=utf-8', data: JSON.stringify({ SAPID: SAPID }), async: true, processData: false, cache: false, success: function (r) { $('a[href="#tabs-2"]').click(); var ddlSapID = $("[id*=ddlSapID]"); ddlSapID.append($("<option></option>").val(rd).html(row.cells[0].innerHTML)); $("#hdnState").val(rd); }, error: function (xhr) { alert('Error while selecting list..!!'); } })Probablemente tenga que eliminar el elemento de la lista desplegable antes de agregar uno nuevo. Puede llamar a remove () en los elementos secundarios del dropdown ( select )
success: function (r) { $('a[href="#tabs-2"]').click(); var ddlSapID = $("[id*=ddlSapID]"); ddlSapID.children().remove(); //this will remove option before appending new ddlSapID.append($("<option></option>").val(rd).html(row.cells[0].innerHTML)); $("#hdnState").val(rd); },