【问题标题】:gridview commandargument on buttonfield pagination used使用的按钮字段分页上的 gridview 命令参数
【发布时间】:2010-12-12 14:24:54
【问题描述】:

我正在使用 c#.net

我有一个网格视图,它需要包含一个“使用”按钮(将 appointmentId 设置为命令参数)。

源代码

<asp:GridView ID="resultsReturned" runat="server" AllowPaging="True"  
    AutoGenerateColumns="False"
    EnableSortingAndPagingCallbacks="True" 
    OnPageIndexChanged="resultsReturned_PageIndexChanged" 
    onrowcommand="resultsReturned_RowCommand">
    <Columns>    
      <asp:BoundField DataField="UserAppointmentId" HeaderText="App ID" />
      <asp:BoundField DataField="UserBookingName" HeaderText="Booking Name" />
      <asp:TemplateField>
        <ItemTemplate>                
          <asp:Button runat="server" 
            ID="UseButton"
            Text="Use"
            CommandName="Use"
            CommandArgument="UserAppointmentId" />
        </ItemTemplate>
      </asp:TemplateField>
    </Columns>
  </asp:GridView>  

代码隐藏

protected void resultsReturned_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "Use")
    {
        correctAppointmentID.Value = (e.CommandArgument.ToString());
    }
}

这用于分页:

private void BindAppointments()
{
    var results = appointmentRepos.GetBookingIdBySearchCriteria(catgoryid, resultsReturned.PageIndex * resultsReturned.PageSize, -1);

    resultsReturned.DataSource = results;            
    resultsReturned.DataBind();
}

我将约会绑定到 PageLoad/search_Click 中的 gridview

这是我收到的错误:

TemplateField 不支持回调,因为某些控件无法在回调中正确更新。在“resultsReturned”上关闭回调。

【问题讨论】:

    标签: c# button gridview pagination


    【解决方案1】:

    尝试以下方法:

     <asp:Button runat="server" 
    ID="UseButton" Text="Use" CommandName="Use"
    CommandArgument='<%# DataBinder.Eval(Container,"DataItem.UserAppointmentId") %>' />
    

    并设置 EnableSortingAndPagingCallbacks="False"

    【讨论】:

    • 它仍然导致同样的问题:TemplateField 不支持回调,因为某些控件无法在回调中正确更新。在“resultsReturned”上关闭回调。此处出现此错误消息:resultsReturned.DataBind();
    • 我更改了 EnableSortingAndPagingCallbacks="False" 并收到以下错误:回发或回调参数无效。使用配置中的 或页面中的 启用事件验证。出于安全目的,此功能验证回发或回调事件的参数是否源自最初呈现它们的服务器控件。如果数据有效且符合预期,请使用 ClientScriptManager.RegisterForEventValidation 方法注册回发或回调数据以进行验证。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-17
    • 1970-01-01
    • 2013-08-02
    • 1970-01-01
    相关资源
    最近更新 更多