|
|
|
start date: Tue, 10 Apr 2007 17:42:13 -0700,
posted on: microsoft.public.dotnet.framework.aspnet.datagridcontrol
back
| Thread Index |
|
1
Steve Hershoff
|
|
2
Milosz Skalecki [MCAD]
|
|
3
Milosz Skalecki [MCAD]
|
|
4
Steve Hershoff
|
|
5
Steve Hershoff
|
DataGrid EditItemTemplate-- how to retrieve a DropDownList validator?
Hi everyone,
I have a DataGrid with several TemplateColumns. One of these columns has an
EditItemTemplate that contains an ASP.Net DropDownList. I'm catching this
DropDownList's SelectedIndexChanged event.
I also have another TemplateColumn, with a RequiredFieldValidator that
validates a TextBox in the column. It all looks like this, in broad
strokes:
<TemplateColumn>
<EditItemTemplate>
<asp:DropDownList OnSelectedIndexChanged="some method">
</asp:DropDownList>
</EditItemTemplate>
</TemplateColumn>
<TemplateColumn>
<EditItemTemplate>
<asp:TextBox id="textbox1">
</asp:TextBox>
<asp:RequiredFieldValidator ControlToValidate="textbox1">
</asp:RequiredFieldValidator>
</EditItemTemplate>
</TemplateColumn>
When I'm in the method that catches the SelectedIndexChanged event, can I
somehow retrieve the RequiredFieldValidator and set its properties? I've
been noodling with FindControl() in various incarnations but haven't found
the right mix yet. Any help or snippets are appreciated.
Thanks!
Date:Tue, 10 Apr 2007 17:42:13 -0700
Author:
|
RE: DataGrid EditItemTemplate-- how to retrieve a DropDownList validat
Hi Steve,
I created an example to show you how to do it:
-- beging aspx code --
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindData();
}
}
private void BindData()
{
dg.DataSource = new int[7];
dg.DataBind();
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
int index = dg.EditItemIndex;
if (index >= 0)
{
DataGridItem item = dg.Items[index];
RequiredFieldValidator validator = (RequiredFieldValidator)
item.FindControl("rfv");
TextBox textBox = (TextBox) item.FindControl("textBox1");
}
}
protected void dg_EditCommand(object source, DataGridCommandEventArgs e)
{
((DataGrid) source).EditItemIndex = e.Item.ItemIndex;
BindData();
}
</script>
<asp:DataGrid runat="server" ID="dg" AutoGenerateColumns="false"
OnEditCommand="dg_EditCommand">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
column1
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList runat="server" ID="ddl"
OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"
AutoPostBack="true">
<asp:ListItem Text="1" />
<asp:ListItem Text="2" />
<asp:ListItem Text="3" />
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<ItemTemplate>
column2
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="textbox1" runat="server">
</asp:TextBox>
<asp:RequiredFieldValidator ControlToValidate="textbox1" runat="server"
ID="rfv">
</asp:RequiredFieldValidator>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:ButtonColumn CommandName="Edit" Text="Edit" />
</Columns>
</asp:DataGrid>
-- end aspx code --
hope this helps
Milosz
"Steve Hershoff" wrote:
> Hi everyone,
>
> I have a DataGrid with several TemplateColumns. One of these columns has an
> EditItemTemplate that contains an ASP.Net DropDownList. I'm catching this
> DropDownList's SelectedIndexChanged event.
>
> I also have another TemplateColumn, with a RequiredFieldValidator that
> validates a TextBox in the column. It all looks like this, in broad
> strokes:
>
> <TemplateColumn>
> <EditItemTemplate>
> <asp:DropDownList OnSelectedIndexChanged="some method">
> </asp:DropDownList>
> </EditItemTemplate>
> </TemplateColumn>
>
>
> <TemplateColumn>
> <EditItemTemplate>
> <asp:TextBox id="textbox1">
> </asp:TextBox>
> <asp:RequiredFieldValidator ControlToValidate="textbox1">
> </asp:RequiredFieldValidator>
> </EditItemTemplate>
> </TemplateColumn>
>
>
>
> When I'm in the method that catches the SelectedIndexChanged event, can I
> somehow retrieve the RequiredFieldValidator and set its properties? I've
> been noodling with FindControl() in various incarnations but haven't found
> the right mix yet. Any help or snippets are appreciated.
>
> Thanks!
>
>
>
Date:Wed, 11 Apr 2007 06:44:02 -0700
Author:
|
RE: DataGrid EditItemTemplate-- how to retrieve a DropDownList validat
Hi Steve,
I created an example to show you how to do it:
-- beging aspx code --
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindData();
}
}
private void BindData()
{
dg.DataSource = new int[7];
dg.DataBind();
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
int index = dg.EditItemIndex;
if (index >= 0)
{
DataGridItem item = dg.Items[index];
RequiredFieldValidator validator = (RequiredFieldValidator)
item.FindControl("rfv");
TextBox textBox = (TextBox) item.FindControl("textBox1");
}
}
protected void dg_EditCommand(object source, DataGridCommandEventArgs e)
{
((DataGrid) source).EditItemIndex = e.Item.ItemIndex;
BindData();
}
</script>
<asp:DataGrid runat="server" ID="dg" AutoGenerateColumns="false"
OnEditCommand="dg_EditCommand">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
column1
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList runat="server" ID="ddl"
OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"
AutoPostBack="true">
<asp:ListItem Text="1" />
<asp:ListItem Text="2" />
<asp:ListItem Text="3" />
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<ItemTemplate>
column2
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="textbox1" runat="server">
</asp:TextBox>
<asp:RequiredFieldValidator ControlToValidate="textbox1" runat="server"
ID="rfv">
</asp:RequiredFieldValidator>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:ButtonColumn CommandName="Edit" Text="Edit" />
</Columns>
</asp:DataGrid>
-- end aspx code --
hope this helps
Milosz
"Steve Hershoff" wrote:
> Hi everyone,
>
> I have a DataGrid with several TemplateColumns. One of these columns has an
> EditItemTemplate that contains an ASP.Net DropDownList. I'm catching this
> DropDownList's SelectedIndexChanged event.
>
> I also have another TemplateColumn, with a RequiredFieldValidator that
> validates a TextBox in the column. It all looks like this, in broad
> strokes:
>
> <TemplateColumn>
> <EditItemTemplate>
> <asp:DropDownList OnSelectedIndexChanged="some method">
> </asp:DropDownList>
> </EditItemTemplate>
> </TemplateColumn>
>
>
> <TemplateColumn>
> <EditItemTemplate>
> <asp:TextBox id="textbox1">
> </asp:TextBox>
> <asp:RequiredFieldValidator ControlToValidate="textbox1">
> </asp:RequiredFieldValidator>
> </EditItemTemplate>
> </TemplateColumn>
>
>
>
> When I'm in the method that catches the SelectedIndexChanged event, can I
> somehow retrieve the RequiredFieldValidator and set its properties? I've
> been noodling with FindControl() in various incarnations but haven't found
> the right mix yet. Any help or snippets are appreciated.
>
> Thanks!
>
>
>
Date:Wed, 11 Apr 2007 06:44:02 -0700
Author:
|
Re: DataGrid EditItemTemplate-- how to retrieve a DropDownList validat
Thanks very much Milosz. This looks like just what I need.
-Steve
Date:Wed, 11 Apr 2007 13:12:07 -0700
Author:
|
Re: DataGrid EditItemTemplate-- how to retrieve a DropDownList validat
Thanks very much Milosz. This looks like just what I need.
-Steve
Date:Wed, 11 Apr 2007 13:12:07 -0700
Author:
|
|
|