我对asp.net的开发很新。 我正在尝试做的是编辑一个gridrow,为特定列提供一个下拉列表。
用户故事:用户在termSearch文本框中输入文字;返回与搜索条件匹配的项目列表。 “活动状态”列只有2个有效值;活跃,不活跃。
我的问题如下:
GridView (活动状态模板字段)
CreateFileAsync
代码背后
<Columns>
<asp:CommandField ShowEditButton="true" />
<asp:BoundField DataField="CODE" ReadOnly="True" HeaderText="Term Code" HtmlEncode="False" Visible="true">
<ItemStyle Width="24%" />
</asp:BoundField>
<asp:BoundField DataField="DISPLAYLABEL" HeaderText="Label" HtmlEncode="False" Visible="true">
<ItemStyle Width="24%" />
</asp:BoundField>
<asp:TemplateField HeaderText="Activity Status">
<ItemTemplate>
<asp:TextBox ID="lblActivity" runat="server" Text='<%#Bind("STATUS_FK") %>'></asp:TextBox>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="ddlActivity" runat="server" SelectedValue='<%# Bind("STATUS_FK") %>'>
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="STRINGATTRIBUTE" HeaderText="String Attribute" HtmlEncode="False" Visible="true">
<ItemStyle Width="24%" />
</asp:BoundField>
<asp:BoundField DataField="LONGLABEL" HeaderText="Long Label" HtmlEncode="False" Visible="true">
<ItemStyle Width="24%" />
</asp:BoundField>
</Columns>
答案 0 :(得分:1)
ddlActivity
位于EditItemTemplate
。所以你必须检查一下。
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if ((e.Row.RowState & DataControlRowState.Edit) > 0)
{
DropDownList ddlActivityStatus = (DropDownList)e.Row.FindControl("ddlActivity");
}
}
}