Hi I found code similiar to the following online. It's seems really great for getting a button buried in a repeater control to trigger a full cycle back to the server.
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<%=DateTime.Now.ToString() %>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="HiddenButton" />
</Triggers>
</asp:UpdatePanel>
<!--Make a hidden button to treat as the postback trigger-->
<asp:Button ID="HiddenButton" runat="server" Style="display: none" Text="HiddenButton" />
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1">
<ItemTemplate>
<!--when cick the button1, it will fire the hiddenButton-->
<asp:Button ID="Button1" Text="Trigger" CommandArgument='<%# Eval("Id") %>' OnClientClick="$get('HiddenButton').click();return false;"
runat="server" />
</ItemTemplate>
</asp:Repeater>
It uses a hiddenButton to achieve this by hooking the click event of the original button to this one. However my addition to this was the setting of the CommandArgument for the button. I would also need it to be set for the HiddenButton.
Does anyone know a way of going about this?
First I will like to explain the
Disadvantage
of using theUpdate Panel
using the very same example posted by you.Below is the Original Code
Output
To display the 22 character string you can check how much data is being received and sent to server. Just imagine following
Database
usingUpdate Panel
and yourGridView
is inUpdate Panel
!!!!!!ViewState
data for each request and withGridView Inside the Update Panel
.Both the above techniques are worst as per my understanding.
Now I will describe you
Page Methods
Page Method over Update panel
Page Methods
allowASP.NET AJAX
pages to directly execute aPage’s Static Methods
, usingJSON (JavaScript Object Notation)
. Instead of posting back and thenreceiving HTML markup
to completely replace ourUpdatePanel’s contents
, we can use aWeb Method
to request only the information that we’re interested.Sample Code
Output
Hope this clearly explains the difference of usage.
Answer to the original Query
You have to register the
ItemDataBound
event of the belowRepeater
and use below code for it.Code Behind
JavaScript
//Alternative
Reference & Here
Your HiddenButton control is a server control but you are trying to access it in JQuery using it's ASP.Net ID,
A quick way to fix it is to make a separate function,
and change your button code to ,
In code behind, in repeater's ItemDataBound event, find the button and HiddenControl and set Button1's OnClientClick property,