在ComboBox顯示時加入品項敘述
※ 參考Jquery easy ui 官網 Combobox Demo Custom Format in ComboBox 一節。
顯示的選項
控制項的設定:
<asp:DropDownList ID="txtitem_no" runat="server" CssClass="easyui-combobox" data-options="url:getItemurl(),
method: 'get',
valueField: 'item_no',
textField: 'item_name',
panelWidth: 200,
panelHeight: 'auto', formatter: formatItem,editable: 'false',width: 200">
</asp:DropDownList>
Javascript:
<script type="text/javascript">
function getItemurl() {
return "Item.ashx?f=q&rand=" + Math.floor((Math.random() * 10000) + 1);
//結合.Net
}
function formatItem(row) {
var s = '<span style="font-weight:bold">Item Name: ' + row.item_name + '</span><br/>' +
'<span style="color:#BBB">Desc: ' + row.item_desc + '</span><br/>' +
'<span style="color:#FAA">Attention: ' + row.app_remark + '</span>';
return s;
}
</script>
.Net 的部分:
public void ProcessRequest (HttpContext context) {
string function = "";
if (null != context.Request.QueryString["f"])
{
function = context.Request.QueryString["f"].ToString();
}
switch (function)
{
case "q":
Query(context);
break;
default:
break;
}
}
public void Query(HttpContext context)
{
context.Response.ContentType = "text/plain";
string SQL = "Select item_no,item_name,item_desc ,app_remark from itemData where 1=1";
DataSet myDS = new DataSet();
myDS = new DataSet();
myDS.Tables.Add(BaseDAO.Select("MSSQL", SQL));
string strJson = Dataset2JsonRow(myDS, myDS.Tables[0].Rows.Count);//DataSet to Json
context.Response.Write(strJson);//回寫前台
context.Response.End();
}
public static string Dataset2JsonRow(DataSet ds, int total = -1)
{
StringBuilder json = new StringBuilder();
foreach (DataTable dt in ds.Tables)
{
//{"total":5,"rows":[
json.Append("[");
json.Append(DataTable2Json(dt));
json.Append("]");
} return json.ToString();
}
public static string DataTable2Json(DataTable dt)
{
StringBuilder jsonBuilder = new StringBuilder();
for (int i = 0; i < dt.Rows.Count; i++)
{
jsonBuilder.Append("{");
for (int j = 0; j < dt.Columns.Count; j++)
{
jsonBuilder.Append("\"");
jsonBuilder.Append(dt.Columns[j].ColumnName);
jsonBuilder.Append("\":\"");
jsonBuilder.Append(dt.Rows[i][j].ToString().Replace(Environment.NewLine, "<BR>"));
jsonBuilder.Append("\",");
}
if (dt.Columns.Count > 0)
{
jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
}
jsonBuilder.Append("},");
}
if (dt.Rows.Count > 0)
{
jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
}
return jsonBuilder.ToString();
}