0
我對asp.net中的開發很新穎。 我正在嘗試做的事情是編輯一個網格,提供一個特定列的下拉列表。DropDownList控件在鑄造期間在GridView中返回null
用戶故事:用戶在termSearch文本框中輸入文本;返回符合搜索條件的項目列表。活動狀態列只有2個有效值;活躍,不活躍。是
我的問題如下:
- 的DropDownList /文本沒有體現在設計,如果它是內模板列。當在TemplateField之外時,設計師檢測到它。
- 在轉換過程中,值被返回爲空。
- 在DataSource方法中,下拉列表(ddlActivity)返回null。
的GridView(活動狀態模板字段)
<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>
代碼後面
protected void gvSearch_DataBound(object sender, GridViewRowEventArgs e)
{
string code = termSearch.Text;
ddlActivity.DataSource = termDAO.SearchByCode(code);
DropDownList ddlActivityStatus = (DropDownList)e.Row.FindControl("ddlActivity");
ddlActivityStatus.Items.Insert(0, new ListItem("--Select a Status--", "0"));
ddlActivityStatus.Items.Add(new ListItem("Active", "STATUS.A"));
ddlActivityStatus.Items.Add(new ListItem("Inactive", "STATUS.I"));
}