当我从数据库生成的下拉列表中选择TranCode时,如何自动将指定的TabNo设置为活动状态并在标签中显示Type?
我正在使用bootstap而我没有使用实体框架,如果你想查看所有代码,请发表评论,谢谢。
表:
TranCode-----TabNo-----Type
100100-------1---------Cash
100101-------1---------Card
100102-------2---------Card
100103-------3---------Cash
100104-------1---------Cash
100105-------3---------Card
100106-------3---------Cash
Index.chtml
<select class="form-control">
@foreach (System.Data.DataRow dr in Model.Transactions.Rows)
{
<option>@dr["TranCode"].ToString()</option>
}
</select>
<label id="lblType" for="lblTypeValue">Type: </label>
<label id="lblTypeValue">N/A</label>
<div class="panel-heading">
<ul class="nav nav-tabs">
<li class="active"><a href="#tab1default" data-toggle="tab">Tab 1</a></li>
<li><a href="#tab2default" data-toggle="tab">Tab 2</a></li>
<li><a href="#tab3default" data-toggle="tab">Tab 3</a></li>
</ul>
</div>
答案 0 :(得分:1)
添加id,选项值和onchange事件。
<select class="form-control" onchange="select_onchange(this);" id="selTab">
@foreach (System.Data.DataRow dr in Model.Data.Rows)
{
<option value="@dr["TabNo"].ToString()$@dr["Type"].ToString()">@dr["TranCode"].ToString()</option>
}
</select>
<div class="panel-heading">
<ul class="nav nav-tabs" id="myTabs">
<li><a href="#tab1default" data-toggle="tab">Tab 1</a></li>
<li><a href="#tab2default" data-toggle="tab">Tab 2</a></li>
<li><a href="#tab3default" data-toggle="tab">Tab 3</a></li>
</ul>
</div>
在剧本中
<script type="text/javascript">
$(function () {
var val = $("#selTab").val().split("$");
setTab(val[0]);
$("#lblTypeValue").text(val[1]);
});
function setTab(value) {
$('#myTabs a[href="#tab' + value + 'default"]').tab('show');
}
function select_onchange(sel) {
var val = sel.value.split("$");
setTab(val[0]);
$("#lblTypeValue").text(val[1]);
}
</script>
我希望它对你有用。
答案 1 :(得分:0)
你可以做回发或使用javascript来处理这个问题。
使用JS:
为您的交易使用视图模型,并在您的视图模型中使用它。
public class TransactionViewModel
{
public string TranCode { get; set; }
public int TabNo { get; set; }
public string Type { get; set; }
}
将您的选择控件更改为此。
<select id="myTransaction" class="form-control">
@foreach (var transaction in Model.Transactions)
{
<option value="@transaction.TranCode">@transaction.TranCode</option>
}
</select>
或使用Html.DropDownList
@Html.DropDownList("myTransaction", new SelectList(Model.Transactions, "TranCode", "TranCode"), new { @class="form-control" })
使用javascript(jquery)来处理事件和操纵视图。
<script type="text/javascript">
$(document).ready(function(){
var _transactions = JSON.parse('@Html.Raw(Json.Encode(Model.Transactions.Rows))');
$('#myTransaction').change(function(){
var _tranCode = $(this).value;
var _transaction = arraySelect(_transactions, "TranCode", _tranCode);
if(_transaction) {
$("#lblType").attr("tabindex", _transaction.TabNo); // Assigns the tab index of the control
$("#lblTypeValue").attr("tabindex", _transaction.TabNo);
$("#lblTypeValue").val(_transaction.Type); // Sets the type
}
});
});
function arraySelect(data, propertyName, expectedValue) {
for (var i = 0; i < data.length; i++) {
if (data[i][propertyName] === expectedValue)
return data[i];
}
return null;
}
</script>