Good morning everyone. Here is my problem. I have a DropdownList inside of an edit form template. On ItemDataBound its items' text and values are populated by a stored procedure. This is working perfectly. The problem is what I want to happen next. When the user clicks an item, the item's text and value are sent to the database (SQL Server) as parameters in order to pull more data and populate textboxes within the template. In my old solution it was as easy at using FindControl to find those textboxes on the page and setting their text as equal to whatever was returned. This is proving to be much more difficult using RadGrid, though, as I cannot seem to find a way to actually find those controls to populate their text. I have included my markup for the radgrid and the DropDownList's selectedindexchanged method below:
####MARKUP####<telerik:RadGrid ID="RadGrid1" runat="server" DataSourceID="theSource" AllowPaging="true" AllowAutomaticDeletes="true" AllowAutomaticInserts="true" AllowAutomaticUpdates="true" ExportSettings-Pdf-AllowPrinting="true" ShowStatusBar="true" ShowFooter="true" AllowSorting="true" AllowMultiRowEdit="true" ShowGroupPanel="true" OnDeleteCommand="RadGrid1_DeleteCommand" CellSpacing="0" GridLines="None" Skin="Web20" AutoGenerateColumns="false" OnItemCommand="RadGrid1_ItemCommand" OnInsertCommand="RadGrid1_InsertCommand" OnUpdateCommand="RadGrid1_UpdateCommand" OnItemInserted="RadGrid1_ItemInserted" onitemdatabound="RadGrid1_ItemDataBound"> <PagerStyle Mode="NextPrevAndNumeric" /> <ExportSettings IgnorePaging="true" OpenInNewWindow="true"> <Pdf PageHeight="210mm" PageWidth="297mm" PageTitle="Weekly Goals" DefaultFontFamily="Arial Unicode MS" PageBottomMargin="20mm" PageTopMargin="20mm" PageLeftMargin="20mm" PageRightMargin="20mm" /> </ExportSettings> <MasterTableView EditMode="EditForms" CommandItemDisplay="Top" DataKeyNames="GoalID"> <%--<CommandItemTemplate> <asp:Button ID="DownloadPDF" runat="server" Width="100%" CommandName="ExportToPdf" Text="Export to PDF" CssClass="pdfButton" /> </CommandItemTemplate>--%> <GroupByExpressions> <telerik:GridGroupByExpression> <SelectFields> <telerik:GridGroupByField FieldName="BeginDate" HeaderText="Begin Date" FormatString="{0:d}" /> </SelectFields> <GroupByFields> <telerik:GridGroupByField FieldName="BeginDate" SortOrder="Descending" /> </GroupByFields> </telerik:GridGroupByExpression> </GroupByExpressions> <Columns> <telerik:GridEditCommandColumn> </telerik:GridEditCommandColumn> <telerik:GridBoundColumn DataField="GoalID" ReadOnly="true" Display="false" HeaderText="GoalID"> </telerik:GridBoundColumn> <telerik:GridDateTimeColumn DataField="BeginDate" HeaderText="Begin Date" DataFormatString="{0:d}"> </telerik:GridDateTimeColumn> <telerik:GridDateTimeColumn DataField="EndDate" HeaderText="End Date" DataFormatString="{0:d}" EditFormColumnIndex="1"> </telerik:GridDateTimeColumn> <telerik:GridBoundColumn DataField="GoalName" UniqueName="goalNameTextBox" HeaderText="Goal Name"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="WeeklyGoal" HeaderText="Goal Description" EditFormColumnIndex="1"> </telerik:GridBoundColumn> <telerik:GridCheckBoxColumn DataField="GoalComplete" HeaderText="Goal Complete?" EditFormColumnIndex="2" DefaultInsertValue="false"> </telerik:GridCheckBoxColumn> <telerik:GridBoundColumn DataField="Task1" Display="false" HeaderText="Step 1"> </telerik:GridBoundColumn> <telerik:GridCheckBoxColumn DataField="T1Complete" Display="false" HeaderText="Complete" EditFormColumnIndex="0" DefaultInsertValue="false"> </telerik:GridCheckBoxColumn> <telerik:GridBoundColumn DataField="Task2" Display="false" HeaderText="Step 2"> </telerik:GridBoundColumn> <telerik:GridCheckBoxColumn DataField="T2Complete" Display="false" HeaderText="Complete" EditFormColumnIndex="0" DefaultInsertValue="false"> </telerik:GridCheckBoxColumn> <telerik:GridBoundColumn DataField="Task3" Display="false" HeaderText="Step 3"> </telerik:GridBoundColumn> <telerik:GridCheckBoxColumn DataField="T3Complete" Display="false" HeaderText="Complete" EditFormColumnIndex="0" DefaultInsertValue="false"> </telerik:GridCheckBoxColumn> <telerik:GridBoundColumn DataField="Task4" Display="false" HeaderText="Step 4"> </telerik:GridBoundColumn> <telerik:GridCheckBoxColumn DataField="T4Complete" Display="false" HeaderText="Complete" EditFormColumnIndex="0" DefaultInsertValue="false"> </telerik:GridCheckBoxColumn> <telerik:GridBoundColumn DataField="Task5" Display="false" HeaderText="Step 5"> </telerik:GridBoundColumn> <telerik:GridCheckBoxColumn DataField="T5Complete" Display="false" HeaderText="Complete" EditFormColumnIndex="0" DefaultInsertValue="false"> </telerik:GridCheckBoxColumn> </Columns> <CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings> <RowIndicatorColumn FilterControlAltText="Filter RowIndicator column"> </RowIndicatorColumn> <ExpandCollapseColumn FilterControlAltText="Filter ExpandColumn column"> </ExpandCollapseColumn> <EditFormSettings InsertCaption="Add New Goal" ColumnNumber="3" EditFormType="Template"> <FormTemplate> <table id="dateControlsTable" cellspacing="2" cellpadding="2" border="0" rules="none" style="border-collapse: collapse;"> <tr class="EditFormHeader"> <td colspan="2"> <b>Goal Data</b> </td> </tr> <tr> <td> <strong>Begin Date:</strong> <telerik:RadDatePicker runat="server" Skin="Web20" ID="beginDatePicker" DbSelectedDate="<%# Bind('BeginDate') %>"> </telerik:RadDatePicker> </td> <td> <strong>End Date:</strong> <telerik:RadDatePicker runat="server" Skin="Web20" ID="endDatePicker" DbSelectedDate="<%# Bind('EndDate') %>"> </telerik:RadDatePicker> </td> <td> <asp:HiddenField runat="server" ID="goalIDHF" Value="<%# Bind('GoalID') %>" /> </td> </tr> </table> <p> </p> <table id="goalDataTable" cellspacing="2" cellpadding="2" border="0" rules="none" style="border-collapse: collapse;"> <tr> <td> <strong>Goal Name:</strong> </td> <td> <telerik:RadTextBox runat="server" Skin="Web20" ID="goalNameTextBox" Text="<%# Bind('GoalName') %>" Width="500"> </telerik:RadTextBox> </td> <td> <strong>Goal Complete:</strong> </td> <td style="text-align: center"> <%--<asp:CheckBox runat="server" ID="goalCompleteCheckBox" Checked="<%# Bind('GoalComplete') %>" />--%> </td> </tr> <tr> <td> <strong>Goal Description:</strong> </td> <td> <telerik:RadTextBox runat="server" Skin="Web20" ID="goalDescriptionTextBox" Text="<%# Bind('WeeklyGoal') %>" Width="500"> </telerik:RadTextBox> </td> <td> </td> <td> </td> </tr> <tr> <td> </td> </tr> <tr> <td> <strong>Steps</strong> </td> <td> </td> <td> <strong>Hours</strong> </td> <td style="text-align: center"> <strong>Complete</strong> </td> </tr> <tr> <td style="float: right"> 1. </td> <td> <telerik:RadTextBox runat="server" Skin="Web20" ID="step1TextBox" Text="<%# Bind('Task1') %>" Width="500"> </telerik:RadTextBox> </td> <td> <telerik:RadTextBox runat="server" Skin="Web20" ID="step1HoursTextBox" Text="<%# Bind('T1EstimatedHours') %>" Width="30"> </telerik:RadTextBox> </td> <td style="text-align: center"> <asp:CheckBox runat="server" ID="step1Complete" Checked="<%# Bind('T1Complete') %>" /> </td> <td> <asp:DropDownList ID="TemplateDropDown" runat="server" AppendDataBoundItems="True" AutoPostBack="True" CssClass="templateDropDown" OnSelectedIndexChanged="TemplateDropDown_SelectedIndexChanged" ViewStateMode="Enabled"> <asp:ListItem Value="0">Choose...</asp:ListItem> </asp:DropDownList> </td> </tr> <tr> <td style="float: right"> 2. </td> <td> <telerik:RadTextBox runat="server" Skin="Web20" ID="step2TextBox" Text="<%# Bind('Task2') %>" Width="500"> </telerik:RadTextBox> </td> <td> <telerik:RadTextBox runat="server" Skin="Web20" ID="step2HoursTextBox" Text="<%# Bind('T2EstimatedHours') %>" Width="30"> </telerik:RadTextBox> </td> <td style="text-align: center"> <asp:CheckBox runat="server" ID="step2Complete" Checked="<%# Bind('T2Complete') %>" /> </td> </tr> <tr> <td style="float: right"> 3. </td> <td> <telerik:RadTextBox runat="server" Skin="Web20" ID="step3TextBox" Text="<%# Bind('Task3') %>" Width="500"> </telerik:RadTextBox> </td> <td> <telerik:RadTextBox runat="server" Skin="Web20" ID="step3HoursTextBox" Text="<%# Bind('T3EstimatedHours') %>" Width="30"> </telerik:RadTextBox> </td> <td style="text-align: center"> <asp:CheckBox runat="server" ID="step3Complete" Checked="<%# Bind('T3Complete') %>" /> </td> </tr> <tr> <td style="float: right"> 4. </td> <td> <telerik:RadTextBox runat="server" Skin="Web20" ID="step4TextBox" Text="<%# Bind('Task4') %>" Width="500"> </telerik:RadTextBox> </td> <td> <telerik:RadTextBox runat="server" Skin="Web20" ID="step4HoursTextBox" Text="<%# Bind('T4EstimatedHours') %>" Width="30"> </telerik:RadTextBox> </td> <td style="text-align: center"> <asp:CheckBox runat="server" ID="step4Complete" Checked="<%# Bind('T4Complete') %>" /> </td> </tr> <tr> <td style="float: right"> 5. </td> <td> <telerik:RadTextBox runat="server" Skin="Web20" ID="step5TextBox" Text="<%# Bind('Task5') %>" Width="500"> </telerik:RadTextBox> </td> <td> <telerik:RadTextBox runat="server" Skin="Web20" ID="step5HoursTextBox" Text="<%# Bind('T5EstimatedHours') %>" Width="30"> </telerik:RadTextBox> </td> <td style="text-align: center"> <asp:CheckBox runat="server" ID="step5Complete" Checked="<%# Bind('T5Complete') %>" /> </td> </tr> <tr> <td align="right" colspan="2"> <asp:LinkButton ID="btnUpdate" Text='<%# (Container is GridEditFormInsertItem) ? "Insert" : "Update" %>' runat="server" CommandName='<%# (Container is GridEditFormInsertItem) ? "PerformInsert" : "Update" %>'> </asp:LinkButton> <asp:LinkButton ID="btnCancel" Text="Cancel" runat="server" CausesValidation="False" UseSubmitBehavior="false" CommandName="Cancel"></asp:LinkButton> <asp:LinkButton ID="btnDelete" Text="Delete" runat="server" CausesValidation="false" CommandName="Delete" /> </td> </tr> </table> </FormTemplate> <EditColumn FilterControlAltText="Filter EditCommandColumn column"> </EditColumn> </EditFormSettings> </MasterTableView> <FilterMenu EnableImageSprites="False"> </FilterMenu> <HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Default"> </HeaderContextMenu> </telerik:RadGrid>####C Sharp####protected void TemplateDropDown_SelectedIndexChanged(object sender, EventArgs e) { DropDownList TemplateDropDown = (DropDownList)sender; if (TemplateDropDown.SelectedIndex > 0) { string templateID = TemplateDropDown.SelectedItem.Value.ToString(); string templateName = TemplateDropDown.SelectedItem.Text.ToString(); DataTable dt = new DataTable(); SqlConnection connection = new SqlConnection(GetConnectionString()); try { connection.Open(); SqlCommand cmd = new SqlCommand("RetrieveWeeklyGoalTemplate", connection); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@GoalID", templateID); cmd.Parameters.AddWithValue("@TemplateName", templateName); SqlDataAdapter da = new SqlDataAdapter(cmd); da.Fill(dt); if (dt.Rows.Count >= 0) //the greater than or equal to is necessary to delete the last row in the gridview. { //GridEditFormItem editform = (GridEditFormItem)sender; string estHours1 = dt.Rows[0][2].ToString(); string estHours2 = dt.Rows[0][4].ToString(); string estHours3 = dt.Rows[0][6].ToString(); string estHours4 = dt.Rows[0][8].ToString(); string estHours5 = dt.Rows[0][10].ToString(); valueChecker.valueChecker value = new valueChecker.valueChecker(); System.Collections.Specialized.ListDictionary templateValues = new System.Collections.Specialized.ListDictionary(); templateValues["goalNameTextBox"] = dt.Rows[0]["TemplateName"].ToString(); templateValues["goalDescriptionTextBox"] = dt.Rows[0]["WeeklyGoal"].ToString(); templateValues["step1TextBox"] = dt.Rows[0]["Task1"].ToString(); templateValues["step2TextBox"] = dt.Rows[0]["Task2"].ToString(); templateValues["step3TextBox"] = dt.Rows[0]["Task3"].ToString(); templateValues["step4TextBox"] = dt.Rows[0]["Task4"].ToString(); templateValues["step5TextBox"] = dt.Rows[0]["Task5"].ToString(); Response.Write(RadGrid1.MasterTableView.Items["goalNameTextBox"].ID.ToString()); ((TextBox)RadGrid1.MasterTableView.FindControl("goalNameTextBox")).Text = dt.Rows[0]["TemplateName"].ToString(); ((TextBox)RadGrid1.MasterTableView.FindControl("goalDescriptionTextBox")).Text = dt.Rows[0]["WeeklyGoal"].ToString(); ((TextBox)RadGrid1.MasterTableView.FindControl("step1TextBox")).Text = dt.Rows[0]["Task1"].ToString(); ((TextBox)RadGrid1.MasterTableView.FindControl("step1TextBox")).Text = dt.Rows[0]["Task2"].ToString(); ((TextBox)RadGrid1.MasterTableView.FindControl("step1TextBox")).Text = dt.Rows[0]["Task3"].ToString(); ((TextBox)RadGrid1.MasterTableView.FindControl("step1TextBox")).Text = dt.Rows[0]["Task4"].ToString(); ((TextBox)RadGrid1.MasterTableView.FindControl("step1TextBox")).Text = dt.Rows[0]["Task5"].ToString(); } TemplateDropDown.Items.Clear(); TemplateDropDown.Items.Add(new ListItem("Personal Goal Library...", "0")); } catch (System.Data.SqlClient.SqlException ex) { string msg = "Fetch Error:"; msg += ex.Message; throw new Exception(msg); } finally { connection.Close(); connection.Dispose(); } } }