0
如何編碼下拉列表中要搜索的類別,我的下拉列表中有2個項目:SSNorTIN和帳號,一切正常,我已經可以搜索,我只想有更多的選項,我的搜索,請幫助ASP.NET MVC下拉列表中要搜索的類別
這是我的代碼:
控制器
public List<CICO> GetCICO(List<SqlParameter> queryParams)
{
List<CICO> cicos = new List<CICO>();
using (SqlConnection con = new SqlConnection())
{
con.ConnectionString = str;
using (SqlCommand cmd = new SqlCommand())
{
cmd.Connection = con;
cmd.CommandTimeout = 180;
string q = " SELECT distinct i.ssn_or_tin,i.cusid,i.accountNo,i.dateTrans,i.transCode,i.transdescription_1,(i.debit) as amount,(coalesce(c.debit, 0)) as cashin,(coalesce(o.debit, 0)) as cashout,i.source";
q += " FROM source_ips i ";
q += " LEFT JOIN (SELECT * FROM source_cash_in_original where transCode = '966') as c ON(i.ssn_or_tin = c.ssntin or i.cusid = c.cusid or i.accountNo = c.accountNo) and i.dateTrans = c.dateTrans";
q += " LEFT JOIN(select * from source_cash_out_original where transCode = '936') as o on(i.ssn_or_tin = o.ssntin or i.cusid = o.cusid or i.accountNo = o.accountNo) and i.dateTrans = o.dateTrans";
q += " WHERE (i.ssn_or_tin = @ssn_or_tin OR @ssn_or_tin='') and i.transCode = '131' and (i.dateTrans between '1/22/2015' and '1/22/2015') order by i.dateTrans ASC";
cmd.Parameters.AddRange(queryParams.ToArray());
cmd.CommandText = q;
con.Open();
using (SqlDataReader sdr = cmd.ExecuteReader())
{
if (sdr.HasRows)
{
while (sdr.Read())
{
CICO cico = new CICO()
{
ssn_or_tin = sdr["ssn_or_tin"] == DBNull.Value ? (double?)null : Convert.ToDouble(sdr["ssn_or_tin"]),
cusid = sdr["cusid"] == DBNull.Value ? (double?)null : Convert.ToDouble(sdr["cusid"]),
accountNo = sdr["accountNo"] == DBNull.Value ? (double?)null : Convert.ToDouble(sdr["accountNo"]),
dateTrans = sdr["dateTrans"].ToString(),
transCode = sdr["transCode"] == DBNull.Value ? (int?)null : Convert.ToInt32(sdr["transCode"]),
transdescription_1 = sdr["transdescription_1"].ToString(),
amount = sdr["amount"] == DBNull.Value ? (double?)null : Convert.ToDouble(sdr["amount"]),
cashin = sdr["cashin"] == DBNull.Value ? (double?)null : Convert.ToDouble(sdr["cashin"]),
cashout = sdr["cashout"] == DBNull.Value ? (double?)null : Convert.ToDouble(sdr["cashout"]),
source = sdr["source"].ToString()
};
cicos.Add(cico);
}
}
}
con.Close();
}
}
return cicos;
}
[HttpPost]
public JsonResult GetAllCICO(SearchParameters searchParameters = null)
{
searchParameters = searchParameters ?? new SearchParameters();
List<SqlParameter> parameters = searchParameters.ToSqlParameterList();
var cicos = GetCICO(parameters).ToList();
var jsonResult = Json(new{data = cicos}, JsonRequestBehavior.AllowGet);
jsonResult.MaxJsonLength = int.MaxValue;
return jsonResult;
}
模式
public class CICO
{
public double? ssn_or_tin { get; set; }
public double? cusid { get; set; }
public double? accountNo { get; set; }
public string dateTrans { get; set; }
public int? transCode { get; set; }
public string transdescription_1 { get; set; }
public double? amount { get; set; }
public double? cashin { get; set; }
public double? cashout { get; set; }
public string source { get; set; }
}
public class SearchParameters
{
public string ssn_or_tin { get; set; }
public SearchParameters()
{
this.ssn_or_tin = string.Empty;
}
internal List<SqlParameter> ToSqlParameterList()
{
List<SqlParameter> parameters = new List<SqlParameter>();
parameters.Add(new SqlParameter("@ssn_or_tin", this.ssn_or_tin??string.Empty));
return parameters;
}
}
的Html
<div style="margin-bottom: 20px" class="row">
<label style="margin-top: 5px" class="col-md-1">Search:</label>
<div class="col-md-3">
<select class="form-control input-sm">
<option>SSN or TIN</option>
<option>Account Number</option>
</select>
</div>
<div class="col-md-6">
<input type="text" class="form-control input-sm" id="txtSSN">
</div>
<div class="col-md-2">
<button class="btn btn-success btn-sm" id="btnSearch" type="submit"><i class="fa fa-search" aria-hidden="true"></i></button>
</div>
</div>
<table class="table table-hover table-bordered" id="IPSCICODatatable">
<thead>
<tr>
<th>SSN or TIN</th>
<th>Customer ID</th>
<th>Account Number</th>
<th>Date Transaction</th>
<th>Trans Code</th>
<th>Trans Description</th>
<th>Amount</th>
<th>Cash in</th>
<th>Cash out</th>
<th>Source</th>
</tr>
</thead>
</table>
的Javascript
$(document).ready(function() {
var table = $('#IPSCICODatatable').DataTable({
dom: "<'row'<'col-sm-6'l><'col-sm-6'f>>" +
"<'row'<'col-sm-12'tr>>" +
"<'row'<'col-sm-2'i><'col-sm-5'B><'col-sm-5'p>>",
buttons: [
'copyHtml5',
'excelHtml5',
'csvHtml5',
'pdfHtml5',
'print'
],
"ajax": {
"url": '/Home/GetAllCICO',
"type": "POST",
"datatype": "json",
"data": function (d) {
d.searchParameters = {};
d.searchParameters.ssn_or_tin = $('#txtSSN').val();
}
},
"columns": [
{ "data": "ssn_or_tin", "autoWidth": true },
{ "data": "cusid", "autoWidth": true },
{ "data": "accountNo", "autoWidth": true },
{ "data": "dateTrans", "autoWidth": true },
{ "data": "transCode", "autoWidth": true },
{ "data": "transdescription_1", "autoWidth": true },
{ "data": "amount", "autoWidth": true },
{ "data": "cashin", "autoWidth": true },
{ "data": "cashout", "autoWidth": true },
{ "data": "source", "autoWidth": true }
]
});
$('#btnSearch').on("click", function() {
table.ajax.reload();
});
});
這裏你必須傳遞更多的參數,例如:d.searchParameters.cusid = $('#txtcusid')。val(); –