Dynamically controls creation asp.net/ event fire twice / event bubbling

few days back i spent alot of my time in googling about bindable controls creation on runtime but whatever tutorial/article i follow fail me to achieve my purpose mostly at 99% which makes me crazy coz this doesn’t happen with me only 1 or 2 times :( so i decided then when i will achieve this functionality i will must write blog about it and solution as well ;)

finally today i ‘d like to talk about dynamically controls creation in asp.net which i found quite easy but for newbie it become quite hectic because to create control at runtime is not an issue but to persist them after post back is an issue even u keep their EnableViewState property true :),  solution is quite simple but that depends upon scenario/need. if you need to create such controls e.g, gridview, datalist, repeater,.. which need to bind then simply follow following steps:

  1. create controls in Page_Init event
  2. bind controls in Page_Load event

thats it :)  its a matter of two steps but drive you nuts if you don’t know coz those controls which created on Page_Init doesn’t persist after postback if you just create them in Page_Load and in Not Postback condition coz it will be created once when first time page loads afterwards it wont be created so u wont be able to see it again but if u don’t put Not Postback condition then everytime it willl be create suppose if you create edittable grid (or any control) and u edit something and press update button next time but on page_load event it will create all controls again and somehow bind as well if u r binding then ur modifications wont remain anymore so …………… :s that was just a 1 scenario so if you bind again and again your modification wont persist and if you don’t create control again and again on each postback ur controls wont persist :D

so the solution is to create controls in Page_Init event without putting condition of Not postback and bind your controls in Page_Load event under condition of Not Postback …

few solutions i would like to write which are somehow out of the scope of this article but you might get whilst working on asp.net binding controls  …..

sometime when we want to bubble event means we use datalist and in datalist we put button and button will fire event of datalist which can be capture in Item_Command event of that datalist, WONT BE FIRE if you write databinding code of datalist in Page_Load event without or out of condition of Not Postback  so keep your databinding code under Page not postback condition.

you can’t rebind your code from bubble event means if you have any button/linkbutton/image button or any such control which cause postback and fire event of datalist don’t try to rebind your datalist in it .. coz it wont happen from there :)

may be some time you found problem of getting some events fired twice :D it happens when your AutoEventWireUp = true so keep it false (good practice)

i will post couple of sample code very soon or you may post comment with your email id to get sample codes via email :)

About these ads

62 responses to “Dynamically controls creation asp.net/ event fire twice / event bubbling

  1. Could I see some sample code. I’ve been trying to create this for a couple of days now.

    I want an add text box button, and when you click it, it will add a single text box to the page. Everytime I add the control on the postback, resets the what is inside and gives me 1 text box.

    I want it to add one more text box to the page.

    I know this can be achieved with javascript very easily, but i wanted some of the feature that controls offer from ASP .NET and also wanted the web page to run on the server side using the runat.

    Can you help?

  2. hi

    before tell you anything i would like to know your requirement which you are trying to accomplish. so far by reading you comment i could suggest you that whenever you create any textbox control on click event or any event increment ViewState(“ControlCounter”) +=1 and on page_init event recreate textboxes again thru loop from 1 to value of ViewState(“ControlCounter”) .

    you can’t have dynamically created control after postback so u would need to recreate it on each postback if u need and if that is bindable or binded then bind that control in page_load event in not postback condition next time when u postback in page_init controls/textboxes will be created again and if they were binded they will have their values thru viewstate.

    best of luck

  3. Hi All,

    I have wired problem
    I hv one gridview which i m binding runtime. It has near abt 750-1000 records.

    now each row has 3 dropdown,for which i hv to fetch data from database & am creating it in gridview_rowcreated event.

    for all 3 dropdown, 1st time i m fetching value from database & storing tht value into viewstate & binding this viewstate values to all 3 dropdowns ( 3 * 750(rows)) in gridview rowcreated event.

    Its time consuming process.

    do we hv other alternatives?

    Regards,

    Kaushal.

  4. first of all, i would like to say you GOOOD. i like developers who look for optimized solutions. actually you have saved db round trips already (good for that) and now you are somehow trying to avoid rebinding/repainting/rerendering at some extent.

    the suggestion i could give about this is to USE OBJECT DATASOURCE OR SQLDATASOURCE and bind your dropdownlists with them as they optimized such things internally according to their architecture

    or

    go ahead for data caching technique in tricky way.

    hope you got the ideas!

    let me know if u have more better solutions than these.

    feel free to contact me:

    adnan_a2z at hotmail dot com
    adnanaman at gmail dot com

  5. Re: mmedi005:

    create an viewstate["counter"] .. add 1 to its value on each button click event and loop through that viewstate["counter"] and create that much textboxes and add to page.
    sample code below:

    private void CreateTextboxControls()
    {
    if (ViewState["counter"] == null)
    {
    ViewState.Add(“counter”, “1”);
    TextBox txt = new TextBox();
    txt.Text = Convert.ToString(ViewState["counter"]);
    Page.Controls.Add(txt);
    }
    else
    {
    ViewState["counter"] = Convert.ToInt32(ViewState["counter"]) + 1;
    for (int i=0; i < Convert.ToInt32(ViewState["counter"]); i++)
    {
    TextBox txt = new TextBox();
    txt.Text = Convert.ToString(ViewState["counter"]);
    Page.Controls.Add(txt);
    }
    }
    }

  6. I have a similar problem and had come up with the counter idea on my own. But there is still a problem. I have a form where the user can click a button and add a new text box. The textboxes are created from a Session variable that works like the counter above. When they click the button.. it can increment the counter… BUT.. this happens in the click event of the button which is AFTER the OnInit method.
    This means that the OnInit method will not run again and I won’t see the button until the user posts again. I tried adding a button in the event.. and they surely will see a new text box but of course it will lose its viewstate in the next postback.. at which point OnInit will create the proper one keeping viewstate.
    I am pretty stuck.. I was hoping that maybe I could determine that the button was clicked while in OnInit. Then I could increment the counter there and create the new textbox in OnInit. Any ideas?

  7. I found a solution to my problem. I had looked online many times and saw mention of using JavaScript.. but I don’t think it would work here. I used a hidden field that would be created by OnInit but would be made visible by the click event. This allowed me to keep my viewstate on the item but also add new items. The basic code is below. The MEI stuff is a webservice we are using to get fonts of forms. The FontDDL and PointsizeDDL with the unique ids were needed because we iterate through the objects in the table later to see what values were there. I needed a way to differentiate between the two dropdowns and needed a unique number so that they had different Ids..

    override protected void OnInit(EventArgs e)
    {
    string uniqueId = this.ClientID;
    string firstLoadId = “firstLoad” + uniqueId;
    numLinesId = “numLines” + uniqueId;

    if (Session[firstLoadId] == null)
    {
    Session[firstLoadId] = “false”;
    Session[numLinesId] = “3”;
    }

    icConfig.ConfigServiceService MEIConfig = new icConfig.ConfigServiceService();

    MEIConfig.Url = _meiConfigUrl;

    fontArray = MEIConfig.getFonts(_docId);
    pointsizeArray = MEIConfig.getPointSizes(_docId);

    int numberOfLines = int.Parse(Session[numLinesId].ToString());

    for (int i = 0; i < numberOfLines; i++)
    {
    createRows(i, true);
    }

    createRows(numberOfLines, false);
    }

    private void createRows(int uniqueNumber, bool makeVisible)
    {
    System.Web.UI.WebControls.TextBox TextBox1;
    System.Web.UI.WebControls.DropDownList DropDown1;
    System.Web.UI.WebControls.TableRow TableRow1;
    System.Web.UI.WebControls.TableCell TableCell1;

    TableRow1 = new TableRow();
    TableRow1.Visible = makeVisible;

    TableCell1 = new TableCell();
    TextBox1 = new TextBox();
    TextBox1.Rows = 1;
    TextBox1.Columns = 60;
    TableCell1.Controls.Add(TextBox1);
    TableRow1.Cells.Add(TableCell1);

    TableCell1 = new TableCell();
    DropDown1 = new DropDownList();
    DropDown1.ID = “FontDDL” + uniqueNumber.ToString();
    DropDown1.Items.Add(new ListItem(“Default”));

    foreach (icConfig.Font aFont in fontArray)
    {
    DropDown1.Items.Add(new ListItem(aFont.name));
    }

    TableCell1.Controls.Add(DropDown1);
    TableRow1.Cells.Add(TableCell1);

    TableCell1 = new TableCell();
    DropDown1 = new DropDownList();
    DropDown1.ID = “PointsizeDDL” + uniqueNumber.ToString();

    foreach (icConfig.PointSize aPointsize in pointsizeArray)
    {
    DropDown1.Items.Add(new ListItem(aPointsize.name));
    }

    DropDown1.SelectedValue = “0”;
    TableCell1.Controls.Add(DropDown1);
    TableRow1.Cells.Add(TableCell1);
    hiddenRow = TableRow1;

    tblProofFields.Rows.Add(TableRow1);
    }

    protected void btnAdd_Click(object sender, EventArgs e)
    {
    int numLines = int.Parse(Session[numLinesId].ToString());
    numLines++;
    Session[numLinesId] = numLines.ToString();

    hiddenRow.Visible = true;
    }

    protected void btnRemove_Click(object sender, EventArgs e)
    {
    int numLines = int.Parse(Session[numLinesId].ToString());
    numLines–;
    Session[numLinesId] = numLines.ToString();

    tblProofFields.Rows.RemoveAt(tblProofFields.Rows.Count – 2);
    }

  8. hi
    i want dynamic evevts for dropdownlists,
    in my code i created 2 dropdownlists dynamically,
    and i want selectindex changed event for one dropdown to get the value for second dropdown
    and after that i save all these in database,can we send that code.
    In advance Thanks

  9. following is code to associate event dynamically/programaticially with control.

    DropDownList tempDDL = new DropDownList();

    tempDDL.SelectedIndexChanged += new
    System.EventHandler(DDL_SelectedIndexChanged);

    tempDDL.AutoPostBack = true;

  10. hi,
    i already written that code ,the events are fired but
    if count is increased the value of 2nd frop down is not comming

  11. Is there any better option to create controls dynamically on the web page depend upon the database table.

    one solution what i had is using xml and xslt ,is there any other alternative that gives better performance.

    my task is similar to IronSpeed product.

    http://www.ironspeed.com

    pls reply as early as possible, adnan bhai………

  12. Mansoor: I am not really sure exactly what you are trying to do.. but I think you are trying to show data from a DB in a table? You don’t need to make “dynamic” controls. You probably want a DataGrid or a GridView. These internally are a kind of dynamic control.. but normally in .NET, a dynamic control is created when the page is loading… if you have a code behind page, it would be made there… not on the markup page. A DataGrid can be created on the markup page and you just need to give it some info about the DB info it will represent.

  13. Muhammad Adnan (Author)

    yar mansooor first describe your problem and here i agree with rob. use dynamically controls when u r unaware by number/types of controls u need to control at design time as its quite painful to manage and more time consuming to create controls dynamically
    as well as u r differentiating xml by sql dbms then if data is very large then don’t go for xml, go for some RDBMS

    anyhow thanks mansoor and rob :)

  14. I have the same problem. please send me some examples. i try to create a gridview dynamically with a couple of events

  15. Hai,
    I created dynamic drop down lists on pageload.

    I need to get it’s value on button click.

    RadComboBox radComboProgGrade = new RadComboBox();
    if (dtGrade.Rows.Count > 0)
    {

    radComboProgGrade.DataSource = dtGrade;
    radComboProgGrade.DataValueField = “ProgressGradeID”;
    radComboProgGrade.DataTextField = “ProgressGradePoint”;

    radComboProgGrade.ID = “radComboGrade”+i;

    }

    //here i represents the drop down count,

    I need each combo’s value in my button click.
    I read all posts,and tried,but didn’t find the soln,
    I.m using telerik rad controls
    can u please help

  16. Here i guess u didn’t add your combo boxes in page controls and its hard to find out your problem by this partial code. if u can copy here all your page_load code then i might be able to help u

    thanks

  17. this is my code………

    protected void Page_Load(object sender, EventArgs e)
    {
    {
    if (!IsPostBack)
    {

    createDynamicTable();

    }

    }
    }

    public void createDynamicTable()
    {

    //creating ist cell,ist row ,now problem here

    DataTable dtProgGradeDesc = new DataTable();
    dtProgGradeDesc.Clear();

    dtProgGradeDesc = objReport.ProgressReport_BindProgressGrade(schoolId);
    Table tbl1 = new Table();

    TableRow rowDesc1 = new TableRow();
    TableCell cellDec1 = new TableCell();

    cellDec1.Text = “”;
    for (int j = 0; j 0)
    {

    Table tbl = new Table();

    for (int i = 0; i 0)
    {

    radComboProgGrade.DataSource = dtGrade;
    radComboProgGrade.DataValueField = “ProgressGradeID”;
    radComboProgGrade.DataTextField = “ProgressGradePoint”;

    radComboProgGrade.ID = “radComboGrade”+i;

    CombId.ID = “radComboGrade” + i;

    ViewState["ID"] = “radComboGrade” + i;

    radComboProgGrade.DataBind();
    radComboProgGrade.Items.Insert(0, new RadComboBoxItem(“—Select—“));

    radComboProgGrade.Visible = true;

    cell1.Controls.Add(radComboProgGrade);
    row.Cells.Add(cell1);

    }
    radComboProgGrade.Skin = “WebBlue”;
    radComboProgGrade.MarkFirstMatch = true;

    tbl.Rows.Add(row);

    }

    tbl.Width = 400;
    Panel1.Controls.Add(tbl);

    }

    }

  18. the main problem I’am facing is I am not able to get the dropdown Id in button click.
    protected void imgBtnSave_Click(object sender, ImageClickEventArgs e)
    {

    }

    for each combo creation ,generating Id like,

    CombId.ID = “radComboGrade” + i;

    but it is unable to take it’s selected value,

  19. Muzammil Rehman

    Aslam-o-alaikum!

    Dear I had a problem today and find the solution from your post. I have dynamically created dropdownlists and able to get their view state after postback. Thanks n JAZAKALLAH

  20. manoj,

    u r creating and binding your combo boxes at page_load only at first time of ur page loading means under !page.Ispostback

    in my post i have mentioned clearly to create your controls in page_init and bind them in page_load under !page.Ispostback

    and yes remember you need to create controls in page_init without any condition means whenever postback will occur your controls should recreate but yes bind only when you first time load page

    then u will get your controls on any control event like button_click

    ok best of luck :)

  21. let me try.thanks for ur reply

  22. Help GridView runtime creation with validation is posible

  23. hi Muhammad,
    i got a problem with my ASP.NET page, event fire twice if i use images control in my page(and i use a lot), i you know a solution to that particular problem, plz help!!!!

  24. u need to check your event handler is not repeating on EVENT method.

    and make sure AutoEventWireUp attribute of your page is not set to TRUE
    .. should be AutoEventWireUp = false

    if u still has porblems after applying my suggestions then pls u better send me your oode so may b i could help in better way.

    thanks,

  25. i have do some search, and iend up to this link,

    https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=330201,

    its explains a bug in .NET itself, or a behavior in html tag that we should avoid, PHP is less complicated than that, isn’t it.
    Thank you for replying Muhammad.
    SALAM

  26. How to disable caching in asp.net ???

  27. disable cache by
    Response.Cache.SetCacheability(HttpCacheability.NoCache)
    write above statement in page_load or if u wana apply to whole application then in global.asax application_start event

    or follow this article on following link

    http://www.codeproject.com/KB/aspnet/NoCaching.aspx

  28. I tried it before with no success. Thanks.

  29. i want to access my lab administrator password.
    how we can access any computer in networking.
    plzzzzzzzzzzzzzzzzzzzzzzzzzzzz

  30. Author (Muhammad Adnan)

    there is no hard & fast rule for such things. u can apply different methods of hacking other computer passwords. first of all i would suggest u to don’t make such tries but if u r like me then gooogle such things ;)

  31. i have a grid which is dynamically generated . i need to add values from drop down and text boxes to the grid. each time whn i select values (using add click event)) i need to update it in grid.(the grid shld contain those values which were already selected))

  32. Hi,
    I’m trying to add dinamic controls on a masterpage, but the line
    Page.Controls.Add(childEM);
    raises an exception saying that the control set can’t be modified during DataBind, Init, Load, PreRender o Unload.

    what I can do?
    using ASP NET 2.0, VSNet 2005

  33. you can’t bind directly to page during page life cycle. so work around is to create some container control like asp:panel on page at design time and add controls in asp:panel

    thanks

  34. Hi Muhammad,

    I am programming a cms and need to create controls dunamically. also I use WebParts. There is a problem that my page posts back twice after for example changing selected item of a drop down list in the page. first with IsPostBack = true that is correct, but after that page posts back with IsPostBack = false that is ugly and confusing and this corrupts all of my previous codes.

    please help me.

    I searched all of internet and said that to asp.net Forums but I got no answer.

    Again, please help me.

  35. Hi,

    I have a page developed in Classic ASP in which I have 2 dropdowns and few other fields. When the value of first dropdown changes, I have to refresh second dropdown and 2 other fields. In ASP, I am getting all the values from database onLoad of the page and use javascript to change the values of other dropdown and InnerHTML of div tag.
    How can I accomplish the same thing in ASP.NET?
    in ASP code to pupulate is written between

  36. for that i would suggest you to read/follow my article on following link http://aspalliance.com/1573

    best of luck

  37. I have created textboxes dynamically,but when i enter the adata in the textboxes they donot get inserted in the sql tables i have created

  38. How do i insert a new textbox dynamically ON EVERY NEXT LINE INSTEAD OF HORIZONTALLY at every click of the button

  39. hi
    i tried to create a textbox dynamically using this code…
    Dim tb1 As System.Web.UI.WebControls.TextBox
    tb1 = New TextBox
    Me.Controls.Add(tb1)

    but
    Control ‘ctl02′ of type ‘TextBox’ must be placed inside a form tag with runat=server.

    this error occured…can anyone help me?

  40. add it in your form. suppose your form id is form1 then do it me.form1.Controls.Add(tb1)

    good luck and thanks

  41. thanx a lot.. mr Muhammad Adnan…its working

  42. I am here at a forum newcomer. Until I read and deal with the forum.
    Let’s learn!

  43. Hi,
    I’m generating controls in IsPostBack is true (As when IsPostBack is false at that time different controls are needed).
    I’m generating dynamic number of textbox, dropdown list. Now i want that if i change index of (dynamic) dropdown then accordingly values should be displayed in another (dynamic) dropdown.

    Problem is that everytime when selected index is changed of dropdown it generates all controls again (due to code is written in IsPostBAck true) so i get everytime first value of dropdown instead of selected value.

    Is there any solution for this? Please send me code if you’ve or give me hint.

    Thanks in advace… :)

  44. how to fire index change event on teleric rad combobox

  45. i m generating dynamic controls but my problem is that i m not able to generate button click event. my dynamic controls are generated from a function called by clicking a button. can you suggest me something…
    thanks in advance

  46. how to generate dynamically texboxes in asp.net?

  47. Richa,
    You need to AddHandler (vb) or delegate(C#) after generating button

  48. hai,

    I want to create buttons dynamically with the number of rows in the database and i have to generate button click events for all buttons…how i can overcome this problem.please help me…

  49. Hi.
    My computer worked not correctly, too much mistakes and buggs. Please, help me to fix errors on my computer.
    My operation system is Windows7.
    Thx,
    seinkPlemikib

  50. hi, every1
    can anyone help me with the codes?
    i am unable to fire the event of the dynamic control which i hav created.

    protected void Page_Load(object sender, EventArgs e)
    {

    if (!Page.IsPostBack)
    {
    displayQuestion();
    option = QuestionHelper.GetOption();
    int i = 0;
    foreach (DataRow r in option.Rows)
    {
    TableRow row = new TableRow();
    TableCell tableCell = new TableCell();
    TableCell tableCellCheck = new TableCell();
    CheckBox checkBox = new CheckBox();
    checkBox.CheckedChanged += new EventHandler(checkBox_CheckedChanged);
    checkBox.Attributes.Add(“runat”, “Server”);
    tableCellCheck.Controls.Add(checkBox);
    checkBox.EnableViewState = true;
    checkBox.AutoPostBack = false;
    checkBox.ID = “myCheck” + i.ToString();
    tableCell.Text = r[1].ToString();
    row.Cells.Add(tableCellCheck);
    row.Cells.Add(tableCell);
    tableAnswers.Rows.Add(row);
    i++;

    }

    }

    }

    void checkBox_CheckedChanged(object sender, EventArgs e)
    {

    option = QuestionHelper.GetOption();
    bool correctAnswer = true;
    for (int i = 0; true; i++)
    {
    CheckBox ck = (CheckBox)Form.FindControl(“mycheck” + i.ToString());
    if (ck == null)
    {
    break;
    }
    else
    {

    if (ck.Checked != (bool)((DataTable)option).Rows[i][3])
    {
    correctAnswer = false;
    break;
    }

    }
    }
    }

    public void displayQuestion()
    {
    question.Text =QuestionHelper.GetQuestion(Session["TestCode"].ToString(), Session["UserName"].ToString());
    count = 0;

    }

    protected void Move2NextQuestion_Click(object sender, EventArgs e)
    {
    count++;

    if (count < int.Parse(Session["totalQuestion"].ToString()))
    {
    question.Text = "";

    try
    {
    question.Text = QuestionHelper.GetQuestion(Session["TestCode"].ToString(), Session["UserName"].ToString());
    option = QuestionHelper.GetOption();
    int i = 0;

    foreach (DataRow r in option.Rows)
    {
    TableRow row = new TableRow();
    TableCell tableCell = new TableCell();
    TableCell tableCellCheck = new TableCell();
    CheckBox checkBox = new CheckBox();
    checkBox.EnableViewState = true;
    checkBox.ID = "myCheck" + i.ToString();
    checkBox.CheckedChanged+=new EventHandler(checkBox_CheckedChanged);
    checkBox.AutoPostBack = false;
    tableCellCheck.Controls.Add(checkBox);
    tableCell.Text = r[1].ToString();
    row.Cells.Add(tableCellCheck);
    row.Cells.Add(tableCell);
    tableAnswers.Rows.Add(row);
    i++;

    }

    }
    catch
    {
    Response.Write("no question for this test");
    }
    }

    else
    {
    question.Text = "";
    Move2NextQuestion.Visible = false;
    SubmitButton.Visible = true;
    }
    }

  51. in the above issue the debugger does not hit
    void checkBox_CheckedChanged(object sender, EventArgs e)

  52. I want to save the contents of a webpage in a database table by using a Htmleditor. Contents of htmleditor are saved in database in form of htmlcode. I am able to successfully save data in database but i am unable to retrieve the saved data back in form of designed webpage.
    I want to create a dynamic web page. The data on this page is retrieve from database table field. Table has fields like id, title, detail. title field has title of a page, detail field has complete detail of a web page which is save in database in the form of htmlcode. The problem is that how a web page is designed from this, how I am show these contents in detail section of a asp.net masterpage.
    I am using sqlserver and asp.net with vb not C#.

  53. I want to save the contents of a webpage in a database table by using a Htmleditor. Contents of htmleditor are saved in database in form of htmlcode. I am able to successfully save data in database but i am unable to retrieve the saved data back in form of designed webpage.

    I want to create a dynamic web page. The data on this page is retrieve from database table field. Table has fields like id, title, detail. title field has title of a page, detail field has complete detail of a web page which is save in database in the form of htmlcode. The problem is that how a web page is designed from this, how I am show these contents in detail section of a asp.net masterpage.
    I am using sqlserver and asp.net with vb not C#.
    Thanks in advance

  54. Hello !

    I’m new on this forum so I introduce me…

    My name is Jason I’m 22 years old, I’m French.

    I like: horses and dogs…

    Nice to meet you

  55. i am a voluntary illustrator, any chance you’d like to use some of my images? i think it would be awesome and fit on your page :-)
    really like your blog! send me a mail please in case you want to see my photgraphs

  56. Hello,

    Nice to be registered on realfantasy.wordpress.com. My little name is maxizhu ;-)

  57. Привет всем форумчанам, народ как вам фильм – Запрещенный прием, стоит ли етот фильм вообще смотреть, ето круть или лажа полная ?
    Жду ваших оценок в опросе, оцениваем не стесняемся )

  58. hi,
    This is sourabh, i have problem of how to create the events of dynamically created dropdownlist in item template in grid view and i want to fire the events on it , i am not able to create the event dynamically please help me out

    Regards,
    sourabh

  59. Guy .. Beautiful .. Wonderful .. I will bookmark your blog and take the feeds additionallyI am satisfied to find a lot of useful info here in the submit, we’d like develop more techniques on this regard, thanks for sharing. . . . . .

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s