我有下面的设置。当我单击CommandField上的“编辑”链接时,会触发RowEditing事件,但该行不允许我编辑;具体来说,DropDownList不会出现。
我的代码似乎符合我能找到的所有例子。
我可能遗漏了一些非常基本的东西,因为我似乎是互联网上遇到这个问题的唯一人。我迫不及待地想要另一双眼睛。
感谢。
<asp:GridView ID="grdvMachine1" runat="server" AutoGenerateColumns="False" CellSpacing="2"
CssClass="GridViewFormat" GridLines="None" Width="500px"
OnRowUpdating="grdvMachine1_RowUpdating" OnRowUpdated="grdvMachine1_RowUpdated"
OnRowEditing="grdvMachine1_RowEditing" OnRowDeleting="grdvMachine1_RowDeleting">
<PagerSettings Position="Top" />
<FooterStyle BackColor="#CCCCCC" ForeColor="Black" />
<Columns>
<asp:BoundField DataField="Day Of Week" HeaderText="Day Of Week" SortExpression="Day Of Week" />
<asp:TemplateField HeaderText="Package" SortExpression="Package">
<EditItemTemplate>
<asp:DropDownList ID="comboPackageNames"
runat="server"
DataSourceID="PackageNames"
DataTextField="PackageName"
DataValueField="PackageName"
SelectedValue='<%# Bind("Package") %>'>
</asp:DropDownList>
<asp:ObjectDataSource ID="PackageNames" runat="server" SelectMethod="GetSPPList"
TypeName="PCS.WebApp.DefaultSchedules">
</asp:ObjectDataSource>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("Package") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowEditButton="true" ShowDeleteButton="true"/>
</Columns>
<RowStyle BackColor="#EEEEEE" ForeColor="Black" HorizontalAlign="Center" VerticalAlign="Middle" />
<EmptyDataTemplate>
There is no schedule for the selected machine
</EmptyDataTemplate>
<SelectedRowStyle BackColor="#008A8C" Font-Bold="False" ForeColor="White" />
<PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />
<HeaderStyle BackColor="#000084" Font-Bold="True" ForeColor="White" HorizontalAlign="Center"
VerticalAlign="Middle" />
<AlternatingRowStyle BackColor="Gainsboro" />
</asp:GridView>
答案 0 :(得分:0)
您的代码也适合我。以下是一些可能有助于您排除故障的事项:
如果这对您有任何改变,请告诉我们。
答案 1 :(得分:0)
尝试从GridView中删除您的PackageNames ODS。我不确定,但将它嵌套在GridView中有点奇怪。
答案 2 :(得分:0)
我没有GridView的ObjectDataSource。我在代码隐藏中填充它,但显然你不能这样做并使用CommandField。