Connecting Tech Pros Worldwide Help | Site Map

How to fire server side events of Dynamic DataList control

Newbie
 
Join Date: Aug 2008
Location: hyderabad-india
Posts: 18
#1: Apr 21 '09
Hi All

This is my first query in this site. firstly i like to appreciate all the contributors of this site and solutions.

I am having an issue while using DataList dynamically. I am able to bind dynamic itemtemplate and dynamic linkbutton in that itemtemplate and displaying data and linkbuttons successfully. but i am not able to fire click event of the rendered linkbuttons even i registered the click event correctly.

also for the safe side i also registered ItemCommand event of DataList.

i have to achieve this task dynamically. there is no aspx or ascx code to be used i am using C# class file.

please revert back if you need any more information to solve my issue.

Your help is highly appricated.

Thanks
Raj
Frinavale's Avatar
Site Moderator
 
Join Date: Oct 2006
Location: The Great White North
Posts: 5,066
#2: Apr 21 '09

re: How to fire server side events of Dynamic DataList control


Welcome to the ASP.NET forum Raj :)

I'm glad you were finally able to post your question.

First of all, did you implement a method to handle the DataList's ItemCommand Event?

If not, try it, does this work?

If it doesn't work then it's likely that you have to bubble up the event in any custom item templates you have implemented.
Newbie
 
Join Date: Aug 2008
Location: hyderabad-india
Posts: 18
#3: Apr 22 '09

re: How to fire server side events of Dynamic DataList control


Thank you, and because of you i am able to use BYTES.

Yes i am handling ItemCommand event.

Another thing i have to mention is..my appliation is implementation of custom webpart. so there are 2 classes that i am using in my program. 1 is class which implements webpart class and another class is which implements Itemplate for creating custom template.

i am rendering all controls in CreateChildControl( ) method. also i avoided postback problem that will cause problem for dynamic link buttons.

i am placing my logic that i implemented
Expand|Select|Wrap|Line Numbers
  1.  public class RelatedOrganizations : System.Web.UI.WebControls.WebParts.WebPart
  2.  {
  3.     //variables
  4.    DataList dataListTop;
  5.         DataList dataListBottom;
  6.  
  7.  //methods
  8.  protected override void CreateChildControls()
  9.         {
  10.            if (!Page.IsPostBack)
  11.               {
  12.  
  13.               //adding properties to my datalist
  14.   dataListBottom = new DataList();
  15.             dataListBottom.ItemCommand += new DataListCommandEventHandler(dataListBottom_ItemCommand);
  16.             dataListBottom.SelectedIndexChanged += new EventHandler(dataListBottom_SelectedIndexChanged);
  17.             TemplateField tfBottom = new TemplateField();
  18.             tfBottom.ItemTemplate = new GridViewTemplate(DataControlRowType.DataRow, strSalesPositionDescriptionColumn);
  19.             tfBottom.ItemTemplate = new GridViewTemplate(DataControlRowType.DataRow, strSalesPositionIdColumn);
  20.             dataListBottom.ItemTemplate = tfBottom.ItemTemplate;
  21.  
  22.     DataTable dt=getData();
  23.      dataListBottom.DataSource = dt;
  24.                 dataListBottom.DataBind();
  25.  
  26.               } //end of if
  27.  
  28.     }//end of method
  29.  
  30.  
  31.  //itemcommand event definition
  32.  void dataListBottom_ItemCommand(object source, DataListCommandEventArgs e)
  33.         {
  34.             dataListUpdate(e);
  35.         }
  36.  
  37. }//end of class
  38.  
  39. //here is my class for Itemplate with a linkbutton
  40. public class GridViewTemplate : ITemplate
  41.     {
  42.         private DataControlRowType templateType;
  43.         private string columnName;
  44.  
  45.         public GridViewTemplate(DataControlRowType type, string colname)
  46.         {
  47.             templateType = type;
  48.             columnName = colname;
  49.         }
  50.  
  51.         public void InstantiateIn(System.Web.UI.Control container)
  52.         {
  53.             // Create the content for the different row types.
  54.             switch (templateType)
  55.             {
  56.                 case DataControlRowType.Header:
  57.  
  58.                     break;
  59.                 case DataControlRowType.DataRow:
  60.                      LinkButton lnkbSPDesc = new LinkButton();
  61.                      lnkbSPDesc.DataBinding += new EventHandler(lnkbSPDesc_DataBinding);
  62.                     lnkbSPDesc.Click += new EventHandler(lnkbSPDesc_Click);
  63.                     container.Controls.Add(lnkbSPDesc);
  64.                     break;
  65.  
  66.  
  67.                 default:
  68.                       break;
  69.             }
  70.         }
  71.  
  72.         void lnkbSPDesc_Click(object sender, EventArgs e)
  73.         {
  74.             LinkButton lb = (LinkButton)sender;
  75.  
  76.         }
  77.  
  78.         void lnkbSPDesc_DataBinding(object sender, EventArgs e)
  79.         {
  80.  
  81.             LinkButton l = (LinkButton)sender;
  82.             //Label l = (Label)sender;
  83.  
  84.             DataListItem item = (DataListItem)l.NamingContainer;
  85.  
  86.  
  87.             POAICSharepointUtility.GetConfigKey("");
  88.             l.Text = DataBinder.Eval(item.DataItem, POAICSharepointUtility.GetConfigKey("SalesPositionDescriptionColumn")).ToString();
  89.             l.CommandArgument = DataBinder.Eval(item.DataItem, POAICSharepointUtility.GetConfigKey("SalesPositionIdColumn")).ToString();
  90.             l.CommandName = DataBinder.Eval(item.DataItem, POAICSharepointUtility.GetConfigKey("SalesPositionIdColumn")).ToString();
  91.             l.Click += new EventHandler(l_Click);
  92.         } //end of class
I hope this code will help you for understanding my problem.

looking for your reply.

thank you
Newbie
 
Join Date: Aug 2008
Location: hyderabad-india
Posts: 18
#4: Apr 22 '09

re: How to fire server side events of Dynamic DataList control


Hi

I dont know what happend, but now my problem was solved. The datalist itemcommand event firing is working fine.

Thank you.
Frinavale's Avatar
Site Moderator
 
Join Date: Oct 2006
Location: The Great White North
Posts: 5,066
#5: Apr 22 '09

re: How to fire server side events of Dynamic DataList control


I'm glad that you solved your problem.
Hopefully next time we'll actually be able to help you :)

-Frinny
Newbie
 
Join Date: Aug 2008
Location: hyderabad-india
Posts: 18
#6: Apr 22 '09

re: How to fire server side events of Dynamic DataList control


Yes frinny. i hope the same.
Newbie
 
Join Date: Aug 2008
Location: hyderabad-india
Posts: 18
#7: Apr 23 '09

re: How to fire server side events of Dynamic DataList control


Hi Frinny

I struck with a problem for Dyanamic Grid View. i am generating a dynamic gridview by custom ItemTemplate. every thing is working except the Page Size. my gridview it not showing records in page wise even i set page size property. where as it is showing all data in 1 page.

In my code, i am only considering ItemTemplate. i am not at all considering PageSetting or PageTemplate. but i am setting gridview's page size property.

the result i am getting is all data that i will give as source to gridview are getting populated on 1 page instead of n pages that i will get with respect to my page size value.

can you explain how i can get my data populate in several pages.
Frinavale's Avatar
Site Moderator
 
Join Date: Oct 2006
Location: The Great White North
Posts: 5,066
#8: Apr 23 '09

re: How to fire server side events of Dynamic DataList control


It should work...
Did you set AllowPaging="true"?
Reply

Tags
datalist, dynamic linkbutton, event fire