Normalmente pasamos un sólo valor al autocomplete: el valor escrito en el textbox (request.term). ¿Y si queremos pasar algún otro valor, por ejemplo, para usarlo como parámetro en un sp?
HTML
====
<table width="800px" border="0">
<tr>
<td style="width:90px;">
N° Nota Salida
</td>
<td>
<asp:TextBox ID="txtNumeroDoc" runat="server" Width="80px" MaxLength="10" CssClass="IntegerType">
</td>
<td>
<asp:HiddenField runat="server" ID="hdnCodUsuario" Value="1" />
</td>
</tr>
</table>
Javascript
==========
$(document).ready(function () {
$('#txtNumeroDoc').autocomplete({
source: function (request, response) {
$.ajax({
type: 'POST',
contentType: 'application/json; charset=utf-8',
url: '../../ws/autocomplete.asmx/NotaIngresoSalida',
data: "{'tag': '" + request.term + "', 'CodUsuario': '" + $('#hdnCodUsuario').val() + "'}",
dataType: 'json',
async: true,
success: function (data) {
response($.map(data.d, function (item) {
return {
value: item.value,
label: item.label,
seriedoc: item.seriedoc,
numerodoc: item.numerodoc
};
}));
},
error: function (result) {
alert('No se pudo cargar la lista de notas de salida.');
}
});
},
minLength: 2,
select: function (event, ui) {
NotaIngresoSalida_Buscar(ui.item.seriedoc, ui.item.numerodoc);
}
});
});
function NotaIngresoSalida_Buscar(strSerieDoc, strNumeroDoc) {
alert(strSerieDoc + '-' + strNumeroDoc);
return false;
}
WebServices
===========
<WebMethod()> _
Public Function NotaIngresoSalida(ByVal tag As String, ByVal CodUsuario As String) As Object
Dim output As String = ""
Dim lhtbResultado = New With {.value = "", .label = "", .seriedoc = "", .numerodoc = ""}
Dim Lista = {lhtbResultado}.ToList()
Try
Dim objbnNotaIngresoSalida As New bnNotaIngresoSalida
Dim dt As New DataTable
dt = objbnNotaIngresoSalida.pf_NotaIngresoSalida_Salidas_Autocomplete(tag, CodUsuario)
If dt.Rows.Count > 0 Then
Lista.RemoveAt(0)
For i = 0 To dt.Rows.Count - 1
Dim lhtbItem = New With {.value = "", .label = "", .seriedoc = "", .numerodoc = ""}
With lhtbItem
.value = dt(i).Item(0)
.label = dt(i).Item(0)
.seriedoc = dt(i).Item(1)
.numerodoc = dt(i).Item(2)
End With
Lista.Add(lhtbItem)
Next
End If
output = Lista.ToString()
Catch ex As Exception
End Try
Return Lista
End Function
No hay comentarios:
Publicar un comentario