У меня есть элемент раскрывающегося списка в шаблоне редактирования для представления сведений, определенного следующим образом:
<asp:TemplateField HeaderText="Primary Use">
<EditItemTemplate>
<asp:DropDownList ID="ddlPrimaryUseEdit" runat="server" OnDataBinding="DropDownList_DataBinding"
SelectedValue='<%# Bind("PrimaryUse") %>' ToolTip="Primary Use">
<asp:ListItem Value="">Unknown</asp:ListItem>
<asp:ListItem>Manufacturing Facilities</asp:ListItem>
<asp:ListItem>Residential</asp:ListItem>
<asp:ListItem>VSSM Office</asp:ListItem>
<asp:ListItem>Engineering / Office / Warehouse</asp:ListItem>
<asp:ListItem>Vacant / Surplus Land</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
У меня есть источник данных, определенный как запрос к моей базе данных, в котором есть столбец с именем "PrimaryUse". Иногда в столбце PrimaryUse может быть значение, которое не указано в качестве одного из элементов раскрывающегося списка, и поэтому мое приложение вылетает при попытке привязать выбранное значение раскрывающегося списка к этому полю. Я пытаюсь создать код в событии OnDataBinding элемента edititemtemplate, который проверит, является ли значение, возвращаемое из источника данных, допустимым значением, указанным в качестве элемента в параметрах раскрывающегося списка. Моя проблема в том, что я не уверен, как получить значение поля источника данных для этого столбца в коде. Это возможно? Может ли кто-нибудь дать мне пример или указать, как это сделать?
Итак, в событии OnDataBinding для шаблона редактирования, указанного выше, я хотел бы сделать что-то вроде следующего (код psuedo):
if datasource.datafieldvalue("PrimaryUse") is in dropdownlist.Items then Valid
else set dropdownlist.Selectedvalue = "Default"