sharepoint - Get value from programmatically created TextBox in C# -
i got itching problem , cant code work
how can read value textbox when form posted?
some code...
protected override void createchildcontrols() { base.createchildcontrols(); textbox querybox = new textbox(); querybox.id = "querybox"; querybox.tooltip = "enter query here , press submit"; controls.add(querybox); button querybutton = new button(); querybutton.usesubmitbehavior = false; querybutton.id = "querybutton"; controls.add(querybutton); if (page.ispostback == true) { try { string query = querybox.text; datagrid datagrid = new datagrid(); datagrid.datasource = camelot.sharepointconnector.data.helper.executedatatable(query, connectionstring); datagrid.databind(); controls.add(datagrid); } catch (exception a) { controls.add(new literalcontrol(a.message)); } // try } // if } // void
i've shortened code bit see idea, string query = querybox.text wont work. i've tried few different variants, i.e.
textbox querybox = (textbox)findcontrol("querybox"); string query = querybox.text;
but no...
any tips appreciated! thanks
the problem controls not populated values viewstate in createchildcontrols. i'd recommend using click event handler on button.
update button code:
button querybutton = new button(); querybutton.usesubmitbehavior = false; querybutton.id = "querybutton"; querybutton.text = "query"; querybutton.click += new eventhandler(querybutton_click); controls.add(querybutton);
then, write click event handler:
void querybutton_click(object sender, eventargs e) { textbox querybox = this.findcontrol("querybox") textbox; try { string query = querybox.text; datagrid datagrid = new datagrid(); datagrid.datasource = camelot.sharepointconnector.data.helper.executedatatable(query, connectionstring); datagrid.databind(); controls.add(datagrid); } catch (exception a) { controls.add(new literalcontrol(a.message)); } // try }
Comments
Post a Comment