我有一个带有文本框和两个下拉菜单的表单。我正在使用此表格进行数据的插入/详细/编辑。最初用于插入数据,该表格工作正常。但是,当我从数据库中检索数据时,下拉值将重复,即,检索到的值将再次在下拉列表中重复。
我的代码::
<div class="form-group">
<label>Name</label><span class="required">*</span>
<input type="text" class="form-control" maxlength="200" runat="server" id="txtEmpName" autocomplete="off" />
</div>
<div class="form-group">
<label>Gender</label><span class="required">*</span>
<select class="form-control" id="selectEmpGender" runat="server" style="height: 34px;">
<option value="0">MALE</option>
<option value="1">FEMALE</option>
<option value="2">UNKNOWN</option>
</select>
</div>
<div class="form-group">
<label>Marital Status</label>
<select class="form-control" id="selectEmpMarried" runat="server" style="height: 34px;">
<option value="0">BACHELOR</option>
<option value="1">MARRIED</option>
<option value="2">DIVORCED</option>
</select>
</div>
<div class="form-group">
<div class="col-md-4">
<asp:Button ID="btnAddFamMem" runat="server" Text="ADD" OnClick="btnAddFamMem_Click" />
</div>
</div>
我正在将SelectedIndexChange方法上的网格视图中的数据显示为::
protected void famGrid_SelectedIndexChanged(object sender, EventArgs e)
{
GridViewRow gvr = famGrid.SelectedRow;
txtEmpName.Value = gvr.Cells[1].Text == " " ? null : gvr.Cells[1].Text;
selectEmpGender.Items[selectEmpGender.SelectedIndex].Text = gvr.Cells[2].Text == " " ? null : gvr.Cells[2].Text;
selectEmpMarried.Items[selectEmpMarried.SelectedIndex].Text = gvr.Cells[3].Text == " " ? null : gvr.Cells[3].Text;
}
请查看附件中的图像,该图像是我从网格视图检索插入的数据进行编辑/详细处理后的数据。
检索到的selectEmpGender
值为UNKNOWN,在下拉列表中重复该值,并且不显示选项MALE。同样,检索到的selectEmpMarried
的值是MARRIED,该值在下拉列表中重复,并且BACHELOR选项未显示。为什么会这样?
答案 0 :(得分:1)
我认为您不想更改所选项目的文本,但您想选择正确的项目:
string gender = gvr.Cells[1].Text;
ListItem genderItem = selectEmpGender.Items.FindByText(gender);
if(genderItem != null)
selectEmpGender.SelectedIndex = selectEmpGender.Items.IndexOf(genderItem);
// same for the other
答案 1 :(得分:0)
在插入或更新员工详细信息之后,清除下拉列表,然后绑定其详细信息。
答案 2 :(得分:0)
After inserting,
txtName.Text = string.Empty;
selectEmpGender.SelectedIndex = -1;
selectEmpMarried.SelectedIndex = -1;
While editing,
bind datas from genderItem
selectEmpGender.SelectedItem.Value= genderItem.gender;