【发布时间】:2015-09-02 16:24:59
【问题描述】:
我有以下asp.net DataGrid:
<asp:DataGrid runat="server" ID="AutoGenerateTable" AutoGenerateColumns = "False" OnEditCommand="AutoGenerateTable_Edit" OnCancelCommand="btn_CancelEdits" OnUpdateCommand="btn_Update">
<HeaderStyle Font-Bold="True" />
<PagerStyle Mode="NumericPages" HorizontalAlign="Left" Font-Bold="true" />
<Columns>
<asp:BoundColumn HeaderText="Country" DataField="Country" ReadOnly="True"/>
<asp:BoundColumn HeaderText="Partner" DataField="Partner" ReadOnly="True"/>
<asp:BoundColumn HeaderText="Product" DataField="Product" ReadOnly="True"/>
<asp:TemplateColumn HeaderText="Flag">
<ItemTemplate>
<asp:Literal id="FlagText" runat="server" Text='<%# Eval("Flag")%>'/>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList runat="server" ID="FlagFropDown" >
<asp:ListItem Text="Auto Fulfill" Value="1" />
<asp:ListItem Text="Do Not Auto Fulfill" Value="0" />
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:EditCommandColumn HeaderText="Edit" EditText="Edit" CancelText="Cancel" UpdateText="Update" />
</Columns>
</asp:DataGrid>
除了一件事之外,一切都很好。
当我编辑数据时,我使用 DropDownList 为用户提供选项。
我想在用户按下“编辑”时设置下拉菜单的值。
问题是我找不到控件,因为按下编辑按钮时它不存在,所以我收到“对象未设置为实例”错误
一旦按下按钮并且下拉菜单出现在屏幕上,我可以在调用更新方法时找到控件,所以我知道它最终会到达那里。
但是如何在用户按下“编辑”时设置它。
我尝试从页面中找到控件并延迟调用该方法,但这不起作用。
例如:
....
System.Threading.Thread.Sleep(1000);
setIndexDropdown();
}
public void setIndexDropdown()
{
DropDownList DropDown = (DropDownList)Page.FindControl("FlagFropDown");
Response.Write(DropDown.ID);
Response.End();
}
有什么想法吗??
编辑
编辑功能代码:
public void AutoGenerateTable_Edit(Object sender, DataGridCommandEventArgs e)
{
AutoGenerateTable.EditItemIndex = e.Item.ItemIndex;
List<string> flag = new List<string>();
flag.Add("Auto Fulfill");
flag.Add("Do Not Auto Fulfill");
AutoGenerateTable.DataSource = populateTable();
AutoGenerateTable.DataBind();
Literal text = e.Item.Cells[3].Controls[1] as Literal;
DropDownList list = e.Item.Cells[3].Controls[1] as DropDownList;
}
【问题讨论】:
-
您正在对哪个事件进行编码?
-
@ImadoddinIbnAlauddin OnEditCommand
-
我们可以看看你的
EditCommand事件的代码吗? -
@j.f.我已经发布了代码
-
更新代码的错误是什么?