如何根据MVC中数据库的值选择默认值 [英] How to get default value selected based on value from database in MVC
本文介绍了如何根据MVC中数据库的值选择默认值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在数据库中有一个表,用于存储用户注册时用户的所有值。我想在编辑模式下在表单中检索这些值。我已成功获取列表中的所有值,并在表单的编辑模式下在文本框中可见。但是表格中也有一个下拉列表,我无法根据来自目前列表中的数据库的值来设置下拉列表的默认值。
DataLayer
public 列表< registerviewmodel> GetUserdetail( string 角色)
{
尝试
{
cmd = new SqlCommand();
RegisterViewModel mvm;
List< registerviewmodel> lstMVM = new List< registerviewmodel>();
cmd.CommandText = getUserdetail;
if (!String.IsNullOrEmpty(Role))
{
cmd.Parameters.Add( @ Role,SqlDbType.NVarChar).Value = Role;
}
DataTable dtModel = dl.GetSpData(cmd);
foreach (DataRow dr in dtModel.Rows)
{
mvm = new RegisterViewModel();
mvm.Id = dr [ Id]。ToString();
mvm.CustomerName = dr [ 客户名称]。ToString();
mvm.Company = dr [ Company]。ToString();
mvm.Address = dr [ Address]。ToString();
mvm.City = dr [ City]。ToString();
mvm.RegionAbri = dr [ Region]。ToString();
mvm.PostalCode = dr [ 邮政编码]。ToString();
mvm.CountryId = int .Parse(dr [ CountryId跨度>]的ToString());
mvm.CountryName = dr [ CountryName]。ToString();
mvm.PhoneNumber = dr [ 电话号码]。ToString();
mvm.Fax = dr [ Fax]。ToString();
mvm.Email = dr [ Email]。ToString();
mvm.AckEmail = dr [ AckEmail]。ToString();
mvm.ApplicationDate = dr [ 申请日期]。ToString();
mvm.UserVerified = dr [ User Verified]。ToString();
mvm.UserStatus = dr [ 用户状态]。ToString();
mvm.CustomerNo = dr [ CustomerNo]。ToString();
mvm.Password = dr [ PasswordHash]。ToString();
mvm.Multiplier = dr [ 乘数]。ToString();
mvm.QuoteExpire = dr [ QuoteExpire]。ToString();
mvm.Freight = dr [ Freight]。ToString();
mvm.Rep = dr [ Rep]。ToString();
mvm.ISENumber = dr [ ISENumber]。ToString();
mvm.ReceiveMail = dr [ ReceiveMail]。ToString();
mvm.BuyingGroup = dr [ BuyingGroup]。ToString();
mvm.Comments = dr [ Comments]。ToString();
lstMVM.Add(mvm);
}
return lstMVM;
}
catch (例外e)
{
throw e;
}
}
控制器
public ActionResult UserMaintainance()
{
eQuoteDataAccess eqda = new eQuoteDataAccess();
RegisterViewModel model = new RegisterViewModel();
model.UserList = eqda.GetUserdetail(Role);
return 查看(模型);
}
查看
@ foreach(Model.UserList中的var项目) )
{@ Html.DropDownListFor(modelitem => item.CountryId,Model.Country)} < / registerviewmodel > < / registerviewmodel > < / registerviewmodel >
解决方案
之后DataBind():
dropDown.SelectedIndex = 0;
或
dropDown.SelectedValue =anyValue;
或
dropDown.Items.FindByValue(anyValue)。Selected = true;
或
dropDown.Items.FindByText(anyValue)。Selected = true;
尝试以下任何一项,这可能会有效:)
-KR
I have a table in database which stores all the value about the user when the user registers.i want to retrive those values in the form in edit mode. i have successfully got all values in a list, and is getting visible in textbox in edit mode of the form. but there is a dropdown in the form too, i am not able to get how to set the default value of the dropdown based on my value coming from the databse which is presently in list.
DataLayer
public List<registerviewmodel> GetUserdetail(string Role)
{
try
{
cmd = new SqlCommand();
RegisterViewModel mvm;
List<registerviewmodel> lstMVM = new List<registerviewmodel>();
cmd.CommandText = "getUserdetail";
if (!String.IsNullOrEmpty(Role))
{
cmd.Parameters.Add("@Role", SqlDbType.NVarChar).Value = Role;
}
DataTable dtModel = dl.GetSpData(cmd);
foreach (DataRow dr in dtModel.Rows)
{
mvm = new RegisterViewModel();
mvm.Id = dr["Id"].ToString();
mvm.CustomerName = dr["Customer Name"].ToString();
mvm.Company = dr["Company"].ToString();
mvm.Address = dr["Address"].ToString();
mvm.City = dr["City"].ToString();
mvm.RegionAbri = dr["Region"].ToString();
mvm.PostalCode = dr["Postal Code"].ToString();
mvm.CountryId = int.Parse(dr["CountryId"].ToString());
mvm.CountryName = dr["CountryName"].ToString();
mvm.PhoneNumber = dr["Phone Number"].ToString();
mvm.Fax = dr["Fax"].ToString();
mvm.Email = dr["Email"].ToString();
mvm.AckEmail = dr["AckEmail"].ToString();
mvm.ApplicationDate = dr["Application Date"].ToString();
mvm.UserVerified = dr["User Verified"].ToString();
mvm.UserStatus = dr["User Status"].ToString();
mvm.CustomerNo = dr["CustomerNo"].ToString();
mvm.Password = dr["PasswordHash"].ToString();
mvm.Multiplier = dr["Multiplier"].ToString();
mvm.QuoteExpire = dr["QuoteExpire"].ToString();
mvm.Freight = dr["Freight"].ToString();
mvm.Rep = dr["Rep"].ToString();
mvm.ISENumber = dr["ISENumber"].ToString();
mvm.ReceiveMail = dr["ReceiveMail"].ToString();
mvm.BuyingGroup = dr["BuyingGroup"].ToString();
mvm.Comments = dr["Comments"].ToString();
lstMVM.Add(mvm);
}
return lstMVM;
}
catch (Exception e)
{
throw e;
}
}
Controller
public ActionResult UserMaintainance()
{
eQuoteDataAccess eqda = new eQuoteDataAccess();
RegisterViewModel model = new RegisterViewModel();
model.UserList = eqda.GetUserdetail(Role);
return View(model);
}
View
@foreach (var item in Model.UserList)
{ @Html.DropDownListFor(modelitem => item.CountryId,Model.Country)}</registerviewmodel></registerviewmodel></registerviewmodel>
解决方案
After yourDataBind():
dropDown.SelectedIndex = 0;
or
dropDown.SelectedValue = "anyValue";
or
dropDown.Items.FindByValue("anyValue").Selected = true;
or
dropDown.Items.FindByText("anyValue").Selected = true;
Try any of this, this might work :)
-KR
这篇关于如何根据MVC中数据库的值选择默认值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文