【发布时间】:2014-02-18 07:27:34
【问题描述】:
为什么在我的行进入编辑模式之前,我需要在 gridview 控件中单击两次编辑链接?
<asp:ObjectDataSource ID="ods" runat="server" TypeName="Employee"
SelectMethod="GetAll" ></asp:ObjectDataSource>
<asp:GridView ID="GridView1" runat="server" CssClass="styled"
OnRowCommand="gv_RowCommand" DataSourceID="ods"
OnSorting="gv_Sorting" >
<Columns>
...........
</Columns>
<ItemTemplate>
<ItemTemplate>
<div class='actions'>
<asp:Button ID="btnEdit" runat="server" Text=" Edit " ToolTip="Edit Row" CommandName="Edit" CommandArgument='<%# DataBinder.Eval(Container.DataItem,"Id") %>' CausesValidation="False" />
<span style="padding-left:10px"></span>
</div>
</ItemTemplate>
</asp:GridView>
protected override void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
this.ods.SelectParameters[0].DefaultValue = "";
}
}
protected void gv_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == CRUID.Edit.ToString())
{
this.gv.ShowFooter = false;
}
}
【问题讨论】:
-
您是否在每次页面加载时填充网格视图?
-
不,我不是,我用更多代码更新了我的问题。
-
可能与您的对象数据源有关(我假设那是“ods”)。无论出现什么问题,更多代码都会有所帮助。
-
是的,这是对象数据源,我将断点放在获取数据的 GetAll 方法上,我注意到当我第一次单击编辑时,它转到 GetAll 方法,我按 F5 并再次返回相同的 GetAll方法,然后我第二次按 F5,然后在编辑模式下返回页面,当我第二次单击时,它进入 GetAll 方法,然后 F5,然后进入 RowCommand 事件......奇怪......可能是什么?
-
这听起来很疯狂,但请尝试在 RowCommand 事件中注释掉以下行:this.gv.ShowFooter = false;在 RowCommand 事件中更改页脚可见性可能会导致 ODS 触发两次。