Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > reference to controls in template item

Reply
Thread Tools

reference to controls in template item

 
 
Dariusz Tomon
Guest
Posts: n/a
 
      04-03-2007
Hello,

The situation is like follow:

I've got GridView1 correlated with DetailsView1 (it's normal scenario). In
DetailView1 I've got CRUD operations enabled. For create and edit opeartion
I've 2 ItemTemplates. One of them is DropDownList2 (with AutoPostBack
enabled) and 2-nd one is GridView2 (dependent on DropDownList2). All I want
is to have GridView2 updated when I change option in DropDownList2.
I thought that I can do that in code behind (Selected event of
DropDownList2) by changing SqlDataSource which is bound to GridView2. But I
don't know how to refer to these "embedded" controls.

Best Regards

D.T.


 
Reply With Quote
 
 
 
 
=?Utf-8?B?TWlsb3N6IFNrYWxlY2tpIFtNQ0FEXQ==?=
Guest
Posts: n/a
 
      04-03-2007
Czesc Darek,

What about FindControl() method?:

DropDownList dropDownList = (DropDownList)
DetailView1.FindControl("DropDownList1")
string selectedValue = dropDownListSelectedValue;

or use asp:ControlParameter in sqldatasource control. The only problem with
the second approach (in this case) is you have to provide container(s)
control id as well:

<asp:SqlDataSource runat="server" ID="SqlDataSource1">
<SelectParameters>
<asp:ControlParameter ControlID="DetailsView1$DropDwonList1"
PropertyName="SelectedValue"/>
</SelectParameters>
</asp:SqlDataSource>

Hope this helps
--
Milosz


"Dariusz Tomon" wrote:

> Hello,
>
> The situation is like follow:
>
> I've got GridView1 correlated with DetailsView1 (it's normal scenario). In
> DetailView1 I've got CRUD operations enabled. For create and edit opeartion
> I've 2 ItemTemplates. One of them is DropDownList2 (with AutoPostBack
> enabled) and 2-nd one is GridView2 (dependent on DropDownList2). All I want
> is to have GridView2 updated when I change option in DropDownList2.
> I thought that I can do that in code behind (Selected event of
> DropDownList2) by changing SqlDataSource which is bound to GridView2. But I
> don't know how to refer to these "embedded" controls.
>
> Best Regards
>
> D.T.
>
>
>

 
Reply With Quote
 
 
 
 
Dariusz Tomon
Guest
Posts: n/a
 
      04-03-2007
Thank you for your advice.
Actually I solved the problem very alike

protected void ddl_DeviceType_SelectedIndexChanged(object sender, EventArgs
e)

{

string a = DetailsView1.FindControl("ddl_DeviceType").ID.ToSt ring();

DropDownList ddl = new DropDownList();

ddl = (DropDownList)DetailsView1.FindControl("ddl_Device Type");

a = ddl.SelectedItem.ToString();

}



Best Regards



D.T.


"Milosz Skalecki [MCAD]" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> Czesc Darek,
>
> What about FindControl() method?:
>
> DropDownList dropDownList = (DropDownList)
> DetailView1.FindControl("DropDownList1")
> string selectedValue = dropDownListSelectedValue;
>
> or use asp:ControlParameter in sqldatasource control. The only problem
> with
> the second approach (in this case) is you have to provide container(s)
> control id as well:
>
> <asp:SqlDataSource runat="server" ID="SqlDataSource1">
> <SelectParameters>
> <asp:ControlParameter ControlID="DetailsView1$DropDwonList1"
> PropertyName="SelectedValue"/>
> </SelectParameters>
> </asp:SqlDataSource>
>
> Hope this helps
> --
> Milosz
>
>
> "Dariusz Tomon" wrote:
>
>> Hello,
>>
>> The situation is like follow:
>>
>> I've got GridView1 correlated with DetailsView1 (it's normal scenario).
>> In
>> DetailView1 I've got CRUD operations enabled. For create and edit
>> opeartion
>> I've 2 ItemTemplates. One of them is DropDownList2 (with AutoPostBack
>> enabled) and 2-nd one is GridView2 (dependent on DropDownList2). All I
>> want
>> is to have GridView2 updated when I change option in DropDownList2.
>> I thought that I can do that in code behind (Selected event of
>> DropDownList2) by changing SqlDataSource which is bound to GridView2. But
>> I
>> don't know how to refer to these "embedded" controls.
>>
>> Best Regards
>>
>> D.T.
>>
>>
>>



 
Reply With Quote
 
Dariusz Tomon
Guest
Posts: n/a
 
      04-03-2007
Czesc Milosz,

Zauwazylem adres wp.pl wiec mozna po polsku chociaz lista jest eng (ale jak
sie wczytaja to pewnie zatrybia
Ok w kazdym razie taka sprawa:

Mam nested gridview w DetailsView ktora pozwala mi wybrac konkretny rekord.
Ale jak robie sortowanie po kolumnie to wywal mi taki blad:

**********************************************

Databinding methods such as Eval(), XPath(), and Bind() can only be used in
the context of a databound control.
Description: An unhandled exception occurred during the execution of the
current web request. Please review the stack trace for more information
about the error and where it originated in the code.

Exception Details: System.InvalidOperationException: Databinding methods
such as Eval(), XPath(), and Bind() can only be used in the context of a
databound control.

Source Error:


[No relevant source lines]


Source File: c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temp orary ASP.NET
Files\zasobyit2\2486c2d0\3d86e288\App_Web_wslajwmy .0.cs Line: 0

Stack Trace:


[InvalidOperationException: Databinding methods such as Eval(), XPath(), and
Bind() can only be used in the context of a databound control.]
System.Web.UI.Page.GetDataItem() +1996914
ASP.infohardware_aspx.__DataBinding__control127(Ob ject sender, EventArgs
e) in c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temp orary ASP.NET
Files\zasobyit2\2486c2d0\3d86e288\App_Web_wslajwmy .0.cs:0
System.Web.UI.Control.OnDataBinding(EventArgs e) +99
System.Web.UI.WebControls.DataBoundControl.OnDataS ourceViewSelectCallback(IEnumerable
data) +51
System.Web.UI.DataSourceView.Select(DataSourceSele ctArguments arguments,
DataSourceViewSelectCallback callback) +29
System.Web.UI.WebControls.DataBoundControl.Perform Select() +149
System.Web.UI.WebControls.BaseDataBoundControl.Dat aBind() +70
System.Web.UI.WebControls.GridView.DataBind() +4
System.Web.UI.WebControls.BaseDataBoundControl.Ens ureDataBound() +82
System.Web.UI.WebControls.GridView.OnPreRender(Eve ntArgs e) +24
System.Web.UI.Control.PreRenderRecursiveInternal() +77
System.Web.UI.Control.PreRenderRecursiveInternal() +161
System.Web.UI.Control.PreRenderRecursiveInternal() +161
System.Web.UI.Control.PreRenderRecursiveInternal() +161
System.Web.UI.Control.PreRenderRecursiveInternal() +161
System.Web.UI.Control.PreRenderRecursiveInternal() +161
System.Web.UI.Control.PreRenderRecursiveInternal() +161
System.Web.UI.Control.PreRenderRecursiveInternal() +161
System.Web.UI.Control.PreRenderRecursiveInternal() +161
System.Web.UI.Page.ProcessRequestMain(Boolean
includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1360

--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:2.0.50727.42; ASP.NET
Version:2.0.50727.42


******************************************

Dodam ze reprezentacja tego pola w templateitem ale w widoku "normalnym" bez
edycji jest labelka.

Masz moze jakis pomysl jak to obejsc? Idealnie chcialbym uzyskac
wspolzaleznosc pomiedzy 2 osadzonymi gridview tak aby wybranie rekordu z
jedego powodowalo zawezenie wynikow 2-giego. Oczywiscie te 2 kontrolgi sa
embedded.

Pozdrawiam

Darek


"Milosz Skalecki [MCAD]" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> Czesc Darek,
>
> What about FindControl() method?:
>
> DropDownList dropDownList = (DropDownList)
> DetailView1.FindControl("DropDownList1")
> string selectedValue = dropDownListSelectedValue;
>
> or use asp:ControlParameter in sqldatasource control. The only problem
> with
> the second approach (in this case) is you have to provide container(s)
> control id as well:
>
> <asp:SqlDataSource runat="server" ID="SqlDataSource1">
> <SelectParameters>
> <asp:ControlParameter ControlID="DetailsView1$DropDwonList1"
> PropertyName="SelectedValue"/>
> </SelectParameters>
> </asp:SqlDataSource>
>
> Hope this helps
> --
> Milosz
>
>
> "Dariusz Tomon" wrote:
>
>> Hello,
>>
>> The situation is like follow:
>>
>> I've got GridView1 correlated with DetailsView1 (it's normal scenario).
>> In
>> DetailView1 I've got CRUD operations enabled. For create and edit
>> opeartion
>> I've 2 ItemTemplates. One of them is DropDownList2 (with AutoPostBack
>> enabled) and 2-nd one is GridView2 (dependent on DropDownList2). All I
>> want
>> is to have GridView2 updated when I change option in DropDownList2.
>> I thought that I can do that in code behind (Selected event of
>> DropDownList2) by changing SqlDataSource which is bound to GridView2. But
>> I
>> don't know how to refer to these "embedded" controls.
>>
>> Best Regards
>>
>> D.T.
>>
>>
>>



 
Reply With Quote
 
=?Utf-8?B?TWlsb3N6IFNrYWxlY2tpIFtNQ0FEXQ==?=
Guest
Posts: n/a
 
      04-06-2007
Czolem Darek,

Musze przyznac ze troche zamieszales pomimo ze dziala
1. nie musisz inicjalizowac zmiennej poprzez tworzenie nowej instancji
dropdownlist skoro ona juz istnieje i zostanie zwrocona z metody FindControl()
2. wiekszosc zdazen przekazuje referencje do obiektu ktorego zdazenie
dotyczy z paramnetrze sender (w tym przypadku bedzie to referencja do
3. podobnie jak w pkt.1, nie musisz inicjalizowac stringa ID controlki

Powinno byc mniej wiecej tak:

protected void ddl_DeviceType_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList ddl = (DropDownList) sender;
string value = ddl.SelectedValue;
}

albo

protected void ddl_DeviceType_SelectedIndexChanged(object sender, EventArgs e)
{
string a;
DropDownList ddl = (DropDownList)
DetailsView1.FindControl("ddl_DeviceType");
a = ddl.SelectedValue.ToString();
}

Widze ze cos Ci jeszcze tam nie dziala (nastepny post) wiec moze bedzie
szybciej jak podeslesz mi kod na maila.

Uszanowanie
--
Milosz


"Dariusz Tomon" wrote:

> Thank you for your advice.
> Actually I solved the problem very alike
>
> protected void ddl_DeviceType_SelectedIndexChanged(object sender, EventArgs
> e)
>
> {
>
> string a = DetailsView1.FindControl("ddl_DeviceType").ID.ToSt ring();
>
> DropDownList ddl = new DropDownList();
>
> ddl = (DropDownList)DetailsView1.FindControl("ddl_Device Type");
>
> a = ddl.SelectedItem.ToString();
>
> }
>
>
>
> Best Regards
>
>
>
> D.T.
>
>
> "Milosz Skalecki [MCAD]" <(E-Mail Removed)> wrote in message
> news:(E-Mail Removed)...
> > Czesc Darek,
> >
> > What about FindControl() method?:
> >
> > DropDownList dropDownList = (DropDownList)
> > DetailView1.FindControl("DropDownList1")
> > string selectedValue = dropDownListSelectedValue;
> >
> > or use asp:ControlParameter in sqldatasource control. The only problem
> > with
> > the second approach (in this case) is you have to provide container(s)
> > control id as well:
> >
> > <asp:SqlDataSource runat="server" ID="SqlDataSource1">
> > <SelectParameters>
> > <asp:ControlParameter ControlID="DetailsView1$DropDwonList1"
> > PropertyName="SelectedValue"/>
> > </SelectParameters>
> > </asp:SqlDataSource>
> >
> > Hope this helps
> > --
> > Milosz
> >
> >
> > "Dariusz Tomon" wrote:
> >
> >> Hello,
> >>
> >> The situation is like follow:
> >>
> >> I've got GridView1 correlated with DetailsView1 (it's normal scenario).
> >> In
> >> DetailView1 I've got CRUD operations enabled. For create and edit
> >> opeartion
> >> I've 2 ItemTemplates. One of them is DropDownList2 (with AutoPostBack
> >> enabled) and 2-nd one is GridView2 (dependent on DropDownList2). All I
> >> want
> >> is to have GridView2 updated when I change option in DropDownList2.
> >> I thought that I can do that in code behind (Selected event of
> >> DropDownList2) by changing SqlDataSource which is bound to GridView2. But
> >> I
> >> don't know how to refer to these "embedded" controls.
> >>
> >> Best Regards
> >>
> >> D.T.
> >>
> >>
> >>

>
>
>

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
GridView add multiple controls to edit item template =?Utf-8?B?SmVyb2QgSGF0bGV5?= ASP .Net 2 10-08-2006 03:04 PM
Adding multiple controls to Item Template column of Grid at Runtim =?Utf-8?B?QWJoaXNoZWs=?= ASP .Net 1 03-24-2006 01:56 PM
How does the compiler interpret a template argument (reference vs. non-reference) ? mrstephengross C++ 2 09-07-2005 03:58 PM
Handling Events Of DataGrid Template Item Controls - UNANSWERED Scott M. ASP .Net Datagrid Control 5 11-16-2004 01:43 AM
Aligning the controls in the item template of the datagrid Vijaya ASP .Net Building Controls 1 12-18-2003 07:45 PM



Advertisments