我在系统上使用MVC3和 webgrid 。我想知道是否可以实现搜索引擎。
我的控制器
Return View(service.list)
并返回大约50000条记录,因此在结果中搜索内容会很好。
问候。
答案 0 :(得分:1)
我找到了解决方案......
视图(使用Razor):
@Using Html.BeginForm("ListarAsegurados", "PolizasLayout", New AjaxOptions With {.UpdateTargetId = "divGrid"})
Dim varCondicionesDeBusqueda As IDictionary(Of String, String) = New Dictionary(Of String, String)
If Not IsNothing(TempData("CondicionesDeBusqueda")) Then
varCondicionesDeBusqueda = TryCast(TempData("CondicionesDeBusqueda"), Dictionary(Of String, String))
End If
TempData("CondicionesDeBusqueda") = varCondicionesDeBusqueda
Dim varDocumentoAsegurado As String = If(varCondicionesDeBusqueda.Keys.Contains("DOCUMENTO_ASEGURADO"), varCondicionesDeBusqueda("DOCUMENTO_ASEGURADO"), String.Empty)
Dim varNombresAsegurado As String = If(varCondicionesDeBusqueda.Keys.Contains("Asegurado"), varCondicionesDeBusqueda("Asegurado"), String.Empty)
@<fieldset>
<legend>Filtros de Búsqueda</legend>
<table>
<tr>
<td>
@Html.RadioButton("Grupo", "", True, New With {.class = "letraingreso", .style = "width:30px", .id = "RadioButton1", .onclick = "CambiarEstadoControles(this)"})
</td>
<td style="border-width:0px; width:120px">
@Html.Label("ID_TIPO_DOCUMENTO", "Tipo Documento:")
</td>
<td style="border-width:0px">
@Html.DropDownList("ID_TIPO_DOCUMENTO", Nothing, New With {.class = "letraingreso", .style = "width:250px"})
</td>
<td style="width:50px"></td>
<td style="border-width:0px">
@Html.Label("DOCUMENTO_ASEGURADO", "No. Documento:")
@Html.TextBox("DOCUMENTO_ASEGURADO", varDocumentoAsegurado, New With {.class = "letraingreso", .style = "width:200px", .onkeyup = "if(this.value.match(/\D/))this.value=this.value.replace(/\D/g,'')"})
</td>
</tr>
<tr>
<td>
@Html.RadioButton("Grupo", "", False, New With {.class = "letraingreso", .style = "width:30px", .id = "RadioButton2", .onclick = "CambiarEstadoControles(this)"})
</td>
<td style="border-width:0px; width:120px">
@Html.Label("Asegurado", "Apellidos / Nombres:")
</td>
<td style="border-width:0px">
@Html.TextBox("Asegurado", varNombresAsegurado, New With {.class = "letraingreso", .style = "width:400px; text-transform:uppercase", .disabled = "disabled"})
</td>
</tr>
</table>
<br />
<table>
<tr>
<td style="border-width:0px; width:145px">
<input type ="submit" value="Buscar" style="width:90px" />
</td>
</tr>
</table>
</fieldset>
@<br />
@<p>
@Html.ActionLink(" ", "Create", "Asegurado", New With {.area = "Polizas"}, New With {.class = "imgNuevo"})
</p>
@<div id="divGrid">
@grid.GetHtml(
tableStyle:="webgrid",
headerStyle:="webgrid-header",
footerStyle:="webgrid-footer",
alternatingRowStyle:="webgrid-alternating-row",
selectedRowStyle:="webgrid-selected-row",
rowStyle:="webgrid-row-style",
mode:=WebGridPagerModes.All,
firstText:="<< Inicio",
previousText:="< Anterior",
nextText:="Siguiente >",
lastText:="Fin >>",
columns:=grid.Columns(
grid.Column(format:=Function(Model) Html.ActionLink(" ", "Edit", "Asegurado", New With {.area = "Polizas", .parID = Model.ID_ASEGURADO}, New With {.class = "imgEditar", .title = "Modificar"}), style:="webgrid-width-images"),
grid.Column(format:=Function(Model) Html.ActionLink(" ", "Delete", "Asegurado", New With {.area = "Polizas", .parID = Model.ID_ASEGURADO}, New With {.class = "imgEliminar", .title = "Eliminar"}), style:="webgrid-width-images"),
grid.Column("DOCUMENTO_ASEGURADO", "No. Documento"),
grid.Column("PRIMER_APELLIDO_ASEGURADO", "Asegurado", format:=Function(Model) Model.PRIMER_APELLIDO_ASEGURADO & " " & Model.SEGUNDO_APELLIDO_ASEGURADO & " " & Model.NOMBRES_ASEGURADO),
grid.Column("DIRECCION_DOMICILIO_ASEGURADO", "Dirección"),
grid.Column("EMAIL_ASEGURADO", "eMail")
)
)
</div>
End Using
<强>控制器强>:
Function ListarAsegurados() As ActionResult
Dim varListado As SelectList
Dim varCondicionesDeBusqueda As IDictionary(Of String, String) = New Dictionary(Of String, String)
If Request.Form.AllKeys.Length > 0 Then
varCondicionesDeBusqueda.Add("DOCUMENTO_ASEGURADO", Request("DOCUMENTO_ASEGURADO"))
varCondicionesDeBusqueda.Add("Asegurado", Request("Asegurado"))
Else
Dim values As Object = Nothing
If TempData.TryGetValue("CondicionesDeBusqueda", values) Then
varCondicionesDeBusqueda = TryCast(values, Dictionary(Of String, String))
End If
End If
TempData("CondicionesDeBusqueda") = varCondicionesDeBusqueda
Dim varDocumentoAsegurado As String = GetSearchConditionValue(varCondicionesDeBusqueda, "DOCUMENTO_ASEGURADO")
Dim varNombresAsegurado As String = GetSearchConditionValue(varCondicionesDeBusqueda, "Asegurado")
If String.IsNullOrEmpty(varDocumentoAsegurado) And String.IsNullOrEmpty(varNombresAsegurado) Then
varListado = New SelectList(varServicio.ListarTiposDocumentos, "ID_TIPO_DOCUMENTO", "DESC_TIPO_DOCUMENTO")
ViewData("ID_TIPO_DOCUMENTO") = varListado
Return View(varServicio.ListarAsegurados)
Else
varListado = New SelectList(varServicio.ListarTiposDocumentos, "ID_TIPO_DOCUMENTO", "DESC_TIPO_DOCUMENTO", CLng(Request.Form("ID_TIPO_DOCUMENTO")))
ViewData("ID_TIPO_DOCUMENTO") = varListado
If String.IsNullOrEmpty(varDocumentoAsegurado) Then
Return View(varServicio.ListarAseguradosPorApellidosNombres(varNombresAsegurado))
Else
Return View(varServicio.ListarAseguradosPorDocumento(CLng(varListado.Items(0).ID_TIPO_DOCUMENTO), varDocumentoAsegurado))
End If
End If
End Function
功能:
Public Function GetSearchConditionValue(ByVal parCondicionesDeBusqueda As IDictionary(Of String, String), ByVal parClave As String) As String
Dim varValorTemporal As String = String.Empty
'If parCondicionesDeBusqueda IsNot Nothing AndAlso parCondicionesDeBusqueda.Keys.Contains("StudentName") Then
If parCondicionesDeBusqueda IsNot Nothing Then
parCondicionesDeBusqueda.TryGetValue(parClave, varValorTemporal)
End If
Return varValorTemporal
End Function
您可以在http://www.cnblogs.com/jack86514/archive/2010/10/26/1861109.html
找到原始帖子答案 1 :(得分:0)
您可以通过过滤结果来进行搜索。
您可以添加包含该字段的文本框进行搜索,然后在返回包含文本框内容的所有结果过滤器之前