
[英]Asp.Net Core Razor Pages DropDownList selected item values
[英]How to get selected values in dropdownlist in asp.net
关闭它后,在下拉列表中获取所选值时遇到问题。 设计文件:
<StackPanel Orientation="Horizontal" Margin="2">
<TextBlock Width="60" VerticalAlignment="Center" Text="state"></TextBlock>
<ComboBox Name="cmbState" Margin="{StaticResource DefaultMargin}" Height="20" Width="220" ItemsSource="{Binding state}" DropDownOpened="cmbState_OnDropDownOpened" DropDownClosed="cmbState_OnDropDownClosed">
<ComboBox.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding name}" IsChecked="{Binding selected, Mode=TwoWay}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</StackPanel>
public class State : ViewModelBase, ICloneable<State>
{
public State()
{
Selected = false;
}
public string name { get; set; }
private bool Selected;
public bool selected
{
get { return Selected; }
set
{
if (value == Selected) return;
Selected = value;
NotifyPropertyChanged("selected");
}
}
public State clone()
{
return MemberwiseClone() as State;
}
}
List<string> allState = new List<string> { "Proposed", "Active", "Resolved", "Closed" };
var states = allState.Select(state => new State { name = state }).ToList();
cmbState.ItemsSource = states;
private void cmbState_OnDropDownOpened(object sender, EventArgs e)
{
var selectedState = new List<string>();
cmbState.Items.ToList().ForEach(item =>
{
var version = item as State;
if (version == null) return;
if (version.selected)
{
if (!selectedState.Contains(version.name))
selectedState.Add(version.name);
}
});
if (selectedState.Any())
{
var states = cmbState.ItemsSource as List<State>;
if (states == null) return;
var release = new State { name = string.Join(";", selectedState), selected = true };
states.Insert(0, release);
cmbState.SelectedIndex = 0;
}
}
private void cmbState_OnDropDownClosed(object sender, EventArgs e)
{
var selectedState = cmbIssueType.Items[0] as State;
if (selectedState == null) return;
var states = cmbIssueType.ItemsSource as List<State>;
if (states == null) return;
foreach (var item in selectedState.name.Split(';').Select(version => states.FirstOrDefault(v => v.name == version)).Where(item => item != null))
{
item.selected = true;
}
states.Remove(selectedState);
}
我已经复制粘贴了我的整个代码,谁能告诉我如何获取所选的下拉列表值,我第二次在dropdown期间获取所选的值,我希望在dropping结束时也是如此。 有什么帮助吗?
谢谢
对不起,我已经自己动手了。 问题是我更改了事件名称。 我错误地用open编写了close事件代码,并用close编写了open事件代码。 :-)
这是答案
@Html.DropDownList("Gender",
new SelectList(
Enum.GetValues(
typeof(MvcLahore1.Models.Gender)
),
selectedValue:Model.Gender),
new { @class = "form-control"}
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.