Monday, June 8, 2009

SharePoint WebPart having dropdown with indexchange event

In WebPart which is having dropdown,getting dropdown selected value on index change event is always a difficult task because whenever we change dropdown index page referesh and WebPart Createchildcontrol methos gets call. Because of which dropdown selected value gets lost.
Below is the code for getting dropdown selected value on index change

public class webservicewebpart: WebPart
{
Label lbl=new Label();
DropDownList ddl=new DropDownList();
protected override void CreateChildControls()
{


ListItem lstItem = new ListItem();
lstItem.Text = "One";
lstItem.Value = "One";
ddl.Items.Add(lstItem);
lstItem = new ListItem();
lstItem.Text = "Two";
lstItem.Value = "Two";
ddl.Items.Add(lstItem);

ddl.AutoPostBack = true;
this.Controls.Add(ddl);
// lbl=new Label();
this.Controls.Add(lbl);
ddl.SelectedIndexChanged += new EventHandler(ddl_SelectedIndexChanged);
}

void ddl_SelectedIndexChanged(object sender, EventArgs e)
{
//throw new Exception("The method or operation is not implemented.");
lbl.Text = ddl.SelectedValue;
}


}

1 comment:

  1. I need help in localizing my sharepoint site. I have created a team site which is by default created in English language. I have Hindi Language pack installed on my machine and also the resource files for hindi are present in 12\resource folder.
    I have added custom dropdown on my page for Language(English & hind) and i am changing the thread uiculture on index change


    protected void MyChoice_SelectedIndexChanged(object sender, EventArgs e)

    {

    MyLabel.Text = MyChoice.SelectedValue;




    if (MyChoice.SelectedValue.ToString().ToLower() == "english")

    {

    System.Threading.


    Thread.CurrentThread.CurrentUICulture = new CultureInfo("en");

    System.Threading.


    Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");

    }




    else if (MyChoice.SelectedValue.ToString().ToLower() == "hindi")

    {

    System.Threading.


    Thread.CurrentThread.CurrentUICulture = new CultureInfo("hi");

    System.Threading.


    Thread.CurrentThread.CurrentCulture = new CultureInfo("hi-IN");

    }

    }

    But still my site is not taking the hindi resource file. Can anybody guide me how to do it step by step? My aim is to add a Dropdown giving user a choice of language. The site should change accordingly to the user language preference.

    ReplyDelete