This solution with key/value with cascading Auto complete with web service.
This JQuery Script
<script type="text/javascript">
$(document).ready(function () {
$("[id$='txRequesterName']").attr('disabled', true);
$("[id$='txAssetName']").attr('disabled', true);
$("[id$='txCompanyName']").autocomplete({
source: function (request, response) {
$.ajax({
type: "POST",
url: "WebService.asmx/GetCompany",
dataType: "json",
data: "{\"companyName\":\"" + request.term + "\"}",
contentType: "application/json; charset=utf-8",
success: function (data) {
response($.map(eval(data.d), function (item) {
return {
label: item.label,
value: item.label,
id: item.value
}
}));
}
})
},
minLength: 1,
select: function (event, ui) {
$("[id$='txCompanyID']").val(ui.item.id);
$("[id$='txRequesterName']").attr('disabled', false);
},
change: function (event, ui) {
$("[id$='txRequesterName']").val('');
$("[id$='txRequesterName']").attr('disabled', false);
}
});
$("[id$='txRequesterName']").autocomplete({
source: function (request, response) {
$.ajax({
type: "POST",
url: "WebService.asmx/GetRequesterByCompany",
dataType: "json",
data: "{\"requesterName\":\"" + request.term + "\",\"companyID\":\"" + $("[id$='txCompanyID']").val() + "\"}",
contentType: "application/json; charset=utf-8",
success: function (data) {
response($.map(eval("[" + data.d + "]"), function (item) {
return {
label: item,
value: item
}
}));
}
})
},
minLength: 1,
select: function (event, ui) {
$("[id$='txAssetName']").attr('disabled', false);
}
});
});
</script>
This is Web service:
<WebMethod()> _
Public Function GetCompany(ByVal companyName As String) As String
Dim serializer As New System.Web.Script.Serialization.JavaScriptSerializer
Dim companyArray As New ArrayList
Dim companyAPI As New CompanyBLL
Dim company As HelpDesk.CompanyDataTable = companyAPI.GetCompanyByCompanyName(companyName)
Try
For i As Integer = 0 To company.Rows.Count - 1
Dim cp As New Company()
cp.label = company.Rows(i).Item("Name")
cp.value = company.Rows(i).Item("CompanyID")
companyArray.Add(cp)
Next
'Removes the extra ":"
'sbCompany = sbCompany.Remove(sbCompany.Length - 1, 1)
Catch ex As Exception
'Setup a breakpoint here
'to verify any exceptions raised.
Dim exp As String = ex.ToString()
End Try
Return serializer.Serialize(companyArray)
End Function
<WebMethod()> _
Public Function GetRequesterByCompany(ByVal requesterName As String, ByVal companyID As Integer) As String
Dim sbRequester As New StringBuilder()
Dim requesterAPI As New RequesterBLL
'Dim companyAPI As New CompanyBLL
'Dim company As HelpDesk.CompanyDataTable = companyAPI.GetCompanyByCompanyName(companyName)
'Dim companyID As Integer
'If company.Rows.Count >= 1 Then
'companyID = company.Rows(0).Item("CompanyID")
'Else
'companyID = 0
'End If
Dim requester As HelpDesk.RequesterDataTable = requesterAPI.GetRequesterByCompanyID(companyID, requesterName)
Try
For i As Integer = 0 To requester.Rows.Count - 1
sbRequester.AppendFormat("'{0}',", requester.Rows(i).Item("Name"))
Next
'Removes the extra ":"
sbRequester = sbRequester.Remove(sbRequester.Length - 1, 1)
Catch ex As Exception
'Setup a breakpoint here
'to verify any exceptions raised.
Dim exp As String = ex.ToString()
End Try
Return sbRequester.ToString()
End Function
End Class
Public Class Company
Public label As String
Public value As String
End Class
Catch ex As Exception
ReplyDelete___________________________________________________
wow gold|Diablo 3 Gold|Buy Diablo 3 Gold|Buy GW2 Gold