如何在下拉列表中预先选择guid值
本文关键字:选择 guid 下拉列表 | 更新日期: 2024-10-22 06:49:21
我正试图用下拉列表来解决一个问题,所以我试图在页面上使用一个属性来修复它,但当我读取selectedindexchanged上的值时。
public Guid _appointmentType { get; set; }
protected void Page_Init(object sender,EventArgs e)
{
string id = Request.QueryString["id"];
Guid _guid = string.IsNullOrEmpty(id) ? new Guid() : new Guid(id);
_shifts = _dal.GetShiftPatternById(_guid);
if (!IsPostBack)
{
var dlManagersSource = _dal.GetManagers();
rdManagers.DataSource = dlManagersSource;
rdManagers.DataValueField = "LookupValue";
rdManagers.DataTextField = "LookupDescription";
rdManagers.DataBind();
var ddlShiftPatterns = _dal.GetShiftPatternTypes();
rdAppointmentType.DataSource = ddlShiftPatterns;
rdAppointmentType.DataValueField = "LookupValue";
rdAppointmentType.DataTextField = "LookupDescription";
rdAppointmentType.DataBind();
}
rdDayOfWeek.SelectedValue = _shifts.dayOfWeek.ToString();
rdManagers.SelectedValue = _shifts.manager_Id.ToString();
txtDescription.Text = _shifts.Description;
rdStartShift.SelectedDate = _shifts.startdate;
rdShiftEnd.SelectedDate = _shifts.endDate;
}
protected void rdAppointmentType_SelectedIndexChanged(object sender, DropDownListEventArgs e)
{
_appointmentType = new Guid(rdAppointmentType.SelectedValue);
}
但是,当我重新加载记录时,它将其保存为null,而不是obv的值。我有一个保存事件,可以将实体保存回来,但我的问题是,我不认为我用来匹配要监视的guid的方法已经在下拉列表中了,因为它停留在第一个站点。请选择。
<div class="form-group">
<label class="col-md-4 control-label" for="val_bio">Appointment Type<span class="text-danger">*</span></label>
<div class="input-group col-md-7">
<telerik:RadDropDownList ID="rdAppointmentType" OnSelectedIndexChanged="rdAppointmentType_SelectedIndexChanged" DefaultMessage="Please Select" runat="server" Skin="Bootstrap"></telerik:RadDropDownList>
</div>
</div>
我想我的主要问题是
rdManagers.SelectedValue = _shifts.manager_Id.ToString();
您正在丢失PostBack
上属性_appointmentType
的内容。您可以将其保存在ViewState
中
而不是:
public Guid _appointmentType { get; set; }
使用类似于此的属性
private Guid _appointmentType
{
get
{
if (ViewState["_appointmentType"] == null)
{
return null;
}
return (Guid)ViewState["_appointmentType"];
}
set
{
ViewState["_appointmentType"] = value;
}
}