1
asp.net 웹 응용 프로그램에서 다음 detailsview 있습니다. 표시 할 내용은 편집 링크가있는 문자열이며, 편집 링크를 선택하면 문자열이 일부 옵션으로 채워진 드롭 다운 목록으로 바뀝니다. 열거 가능한에 데이터가없는 경우 위해 DetailsView 당신은 당신은 아무것도가 DetailsView
에 표시 할 경우 EmptyDataTemplate
를 추가 할 필요가 ... (심지어 편집 링크)DetailsView 컨트롤이 DataBind() 후에 표시되지 않습니다.
<asp:DetailsView ID="dvAwardType"
runat="server"
AutoGenerateRows="False"
Width="100%"
SkinID="SampleDetailsView"
CssSelectorClass="PrettyDetailsView"
AutoGenerateEditButton="True" DataKeyNames="guidRequirementId"
OnModeChanging="dvAwardType_ModeChanging"
OnItemUpdating="dvAwardType_ItemUpdating">
<FieldHeaderStyle Font-Bold="True" Width="150px" />
<Fields>
<asp:TemplateField HeaderText="Pool Type">
<ItemTemplate>
<%#Eval("strAwardType")%>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="ddlAwardType"
runat="server">
<asp:ListItem Text="" Value="" />
<asp:ListItem Text="Small Business" Value="SB" />
<asp:ListItem Text="Large Business" Value="LB" />
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>
</Fields>
</asp:DetailsView>
protected void Page_Load(object sender, EventArgs e)
{
dvAwardType.DataSource = GetData(RequirementId);
dvAwardType.DataBind();
}
private IEnumerable GetData(Guid guidRequirementId)
{
var data = Requirement.BusinessSize(guidRequirementId)
.Select(o =>
new
{
guidRequirementId = o.guidRequirementId,
strAwardType = (o.strBusinessSize != null) ? TranslateSize(o.strBusinessSize) : ""
}
);
return data;
}
private string TranslateSize(string strSize)
{
string strTranslated = string.Empty;
switch(strSize.Trim())
{
case "SB": strTranslated = "Small Business";
break;
case "LB": strTranslated = "Large Business";
break;
}
return strTranslated;
}