Showing posts with label Repeater. Show all posts
Showing posts with label Repeater. Show all posts

Friday, December 9, 2011

ASP.net - LinkButtons in a Repeater within an UpdatePanel are not triggering a postback of any kind

<asp:UpdatePanel ID="DataUpdatePanel" runat="server">
 <ContentTemplate>
 <table>
    <asp:Repeater ID="RepeaterBlock" runat="server">
    <HeaderTemplate><thead><tr><th>Name</th><th>Status</th><th class="empty"></th></tr></thead></HeaderTemplate>
    <ItemTemplate><tr>
        <td><a class="link" href="Detail.aspx?item=<%# DataBinder.Eval( Container.DataItem, "Name") %>"><%# DataBinder.Eval( Container.DataItem, "Name") %></a>
        </td>
        <td><%# DataBinder.Eval( Container.DataItem, "Status") %></td>
        <td class="no-border">
            [<asp:LinkButton CommandName='Schedule' CommandArgument='<%# DataBinder.Eval(Container.DataItem, "Name") %>' ID="ScheduleButton" runat="server" CausesValidation="false" >Schedule</asp:LinkButton>]
        </td>
     </tr></ItemTemplate>
    </asp:Repeater>
</table>
</ContentTemplate>
</asp:UpdatePanel>


<Triggers>
   <asp:AsyncPostBackTrigger ControlID="ScheduleButton" />
</Triggers>

use in Code Behind

RepeatData.DataBind();
  RepeatData.ItemCommand += new RepeaterCommandEventHandler(RepeatData_ItemCommand);

  UpdateScripts.RegisterAsyncPostBackControl(FindControlRecursive( RepeatData, "SchedulButton"));

Thursday, December 8, 2011

Repeater, Link Button, onItemCommand

asp:Repeater ID="myRepeater" OnItemCommand="MyCommand" runat="server">
    <ItemTemplate>
        <asp:LinkButton ID="myLinkButton" CommandName="MyCommand" CommandArgument='<%#Eval("uid")%>' runat="server" Text='<%#Eval("Forename")%>' />    <ItemTemplate>
</asp:Repeater>

In my page load I did the following
if Page.Request.Params.Get("__EVENTTARGET").ToString.Substring(Page.Request.Params.Get("__EVENTTARGET").ToString.LastIndexOf("$") + 1) = "myLinkButton" then
    rebind_repeater_hereend if

Repeater and Submit button problem

Private void Page_Load(object sender, System.EventArgs e)
                {
                        // Put user code to initialize the page here
                        if(IsPostBack)
                        {
                        }

                        else
                        {
                                MyHashTable=new Hashtable(2);

                                MyHashTable.Add("Hello",1);
                                MyHashTable.Add("Bye",2);

                                this.Repeater1.DataSource=MyHashTable;
                                this.Repeater1.DataBind();
                        }
                }
private void Button1_Click(object sender, System.EventArgs e)
                {
                        System.Web.UI.WebControls.Label MyLabel=new Label();
                        MyLabel=(System.Web.UI.WebControls.Label)this.Repeater1.Items[0].FindControl("Label1");
                        string mmmm=MyLabel.Text.ToString().TrimEnd();
                        int x=0;
                
                }