如何在下拉列表中预先选择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();

如何在下拉列表中预先选择guid值

您正在丢失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;
    }
}