Wednesday, March 21, 2012

argumentNullException with gridview paging with toolkit control in template field

hi

I have a simple page with a gridview. the item template has an AjaxControlToolkit:confirmButtonExtender. All is good until I tried to enable custom paging in the gridview and object data source. the first page loads but when I click on the 2nd page I get an argumentNullException thrown. The Page argument is null. I can make paging work by removing the AjaxControlToolkit:confirmButtonExtender. Anybody got any ideas about this?

Value cannot be null. Parameter name: page

stack trace:

at Microsoft.Web.UI.ScriptManager.GetCurrent(Page page)
at AjaxControlToolkit.ExtenderControlBase.EnsureScripts() in d:\TFS\AtlasControlToolkit\Release\AjaxControlToolkit\ExtenderBase\ExtenderControlBase.cs:line 129
at AjaxControlToolkit.ExtenderControlBase.GetScriptReferences() in d:\TFS\AtlasControlToolkit\Release\AjaxControlToolkit\ExtenderBase\ExtenderControlBase.cs:line 515
at Microsoft.Web.UI.ExtenderControl.Microsoft.Web.UI.IExtenderControl.GetScriptReferences()
at Microsoft.Web.UI.ScriptControlManager.RegisterScriptsForExtenderControls()
at Microsoft.Web.UI.ScriptControlManager.RegisterScripts()
at Microsoft.Web.UI.ScriptManager.OnPreRender(EventArgs e)
at System.Web.UI.Control.PreRenderRecursiveInternal()
at System.Web.UI.Control.PreRenderRecursiveInternal()
at System.Web.UI.Control.PreRenderRecursiveInternal()
at System.Web.UI.Control.PreRenderRecursiveInternal()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Page:

<%@dotnet.itags.org.PageLanguage="C#"MasterPageFile="~/SheetDataEntry.master"AutoEventWireup="true"CodeFile="SheetList.aspx.cs"Inherits="SheetList"Title="Untitled Page" %>
<%@dotnet.itags.org.RegisterAssembly="AjaxControlToolkit"Namespace="AjaxControlToolkit"TagPrefix="ajaxToolkit" %>
<%@dotnet.itags.org.RegisterAssembly="Microsoft.Web.Preview"Namespace="Microsoft.Web.Preview.UI"TagPrefix="asp" %>

<asp:ContentID="Content1"ContentPlaceHolderID="ContentPlaceHolder1"Runat="Server">
<asp:GridViewID="GridView1"runat="server"AutoGenerateColumns="False"DataSourceID="ObjectDataSource1"OnRowCommand="GridView1_RowCommand" AllowPaging="true"pagesize="2">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:HyperLinkID="HyperLink1"runat="server"NavigateUrl='<%# Eval("Uid", "SheetEdit.aspx?SheetUid={0}") %>'Target="_parent"Text='<%# Eval("SheetId", "Edit {0}") %>'></asp:HyperLink>
<asp:LinkButtonID="LinkButton1"runat="server"CommandArgument='<%# Eval("Uid", "{0}") %>'CommandName="DeleteSheet"OnClick="LinkButton1_Click">Delete

<ajaxToolkit:ConfirmButtonExtenderID="ConfirmButtonExtender1"runat="server"ConfirmText='Are you sure you want to delete?'TargetControlID="LinkButton1"
BehaviorID="ctl02_ConfirmButtonExtender1"Enabled="True"
>
</ajaxToolkit:ConfirmButtonExtender

</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundFieldDataField="SheetId"HeaderText="SheetId"SortExpression="SheetId"/>
</Columns>
</asp:GridView>

<asp:ObjectDataSourceID="ObjectDataSource1"runat="server"OldValuesParameterFormatString="original_{0}"
OnObjectCreating="ObjectDataSource1_ObjectCreating"SelectMethod="SelectAll"TypeName="Bst.Rincon.BL.SheetInformation.SheetListJunction"
EnablePaging="true"SelectCountMethod="SelectCount">
</asp:ObjectDataSource>

</asp:Content>

here's an explanation of the underlying problem:

Known Issue & Workaround: Extenders no longer work in templated controls:http://forums.asp.net/thread/1441672.aspx

for now i can continue without the ConfirmButtonExtender. And I can tell the boss that I didn't break it... Yipee!

Cheers,

Alan Grant

No comments:

Post a Comment