Колонки доступ после нажмите на кнопку дочерние таблицы (после оказанных)
В соответствии с темой, если таковые имеются, можно ли получить доступ к значениям полей столбца сущности (уже назначенным из запроса в DataList и выполненным в rendered)?
Я попытался использовать метод pattern так же, как он используется в событии runtime itemdatabound, и он дал только результат "null".
Вид Разметки:
<ItemTemplate> <div class="JobProgressListHandle"> <h1 id="JobNumberHeader" runat="server"></h1> <asp:DataList ID="JobProgressList" CssClass="JobProgressListStyle" DataKeyField="SectionGroup_Id" runat="server" OnItemDataBound="JobProgressList_ItemDataBound"> <ItemTemplate> <h1 id="SectionHeader" runat="server" style="color:blue;margin-left:16px"></h1> <div id="JobProgressSectionHandle"> <div id="JobProgressInSection" runat="server"> </div> </div> <table> <tr> <td> <asp:Button ID="PrintsectionButton" runat="server" Text="Print" Width="85px" Height="40px" ClientIDMode="Static" OnClick="PrintsectionButton_Click" /> </td> </tr> </table> <br /> </ItemTemplate> </asp:DataList> </div> </ItemTemplate>
Запрос назначить DataList "JobList" перед JobProgressList
protected void JobList_ItemDataBound(object sender, DataListItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { var querysectionlist = (from query in timesheet.MPTimeSheets where query.PTWON == JobNumberHolder & query.PTCCC == MachineProdId & query.PTCDATE >= StartDateHolder & query.PTCDATE <= EndDateHolder select new { query.PTWON, query.SectionGroup_Id, query.PTITEM, }).Distinct().ToList(); DataList JobProgressList = (DataList)e.Item.FindControl("JobProgressList"); if (JobProgressList != null) { JobProgressList.DataSource = querysectionlist; JobProgressList.DataBind(); } } }
Кода (при нажатии на кнопку 'PrintsectionButton кнопки (ребенок на таблицы JobProgressList):
protected void PrintsectionButton_Click(object sender, EventArgs e) { try { Button PrintButton = sender as Button; DataListItem ListItem = PrintButton.NamingContainer as DataListItem; DataList JobProgressList = (DataList)this.JobList.Controls[1].FindControl("JobProgressList"); var MachineIdHolder = Convert.ToInt32(this.CostCentreDropDown.SelectedValue); DateTime StartDateHolder = DateTime.ParseExact(this.StartPrintDate.Text, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture); DateTime EndDateHolder = DateTime.ParseExact(this.EndPrintDate.Text, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture); var StartDateDay = (StartDateHolder.Day < 10) ? "0" + StartDateHolder.Day.ToString() : StartDateHolder.Day.ToString(); var StartDateMonth = (StartDateHolder.Month < 10) ? "0" + StartDateHolder.Month.ToString() : StartDateHolder.Month.ToString(); var StartDateValue = Convert.ToInt32(StartDateHolder.Year.ToString() + StartDateMonth + StartDateDay); var EndDateDay = (EndDateHolder.Day < 10) ? "0" + EndDateHolder.Day.ToString() : EndDateHolder.Day.ToString(); var EndDateMonth = (EndDateHolder.Month < 10) ? "0" + EndDateHolder.Month.ToString() : EndDateHolder.Month.ToString(); var EndDateValue = Convert.ToInt32(EndDateHolder.Year.ToString() + EndDateMonth + EndDateDay); DataListItem JobListItem = ListItem.Parent.NamingContainer as DataListItem; if (JobListItem.ItemType == ListItemType.Item || JobListItem.ItemType == ListItemType.AlternatingItem) { dynamic SectionGroup = (Object)JobListItem.DataItem; var SectionId = (String)SectionGroup.SectionGroup_Id; File.WriteAllText(@"C:\checkprint.txt", ""); File.AppendAllText(@"C:\checkprint.txt", "Check :" + SectionId); } } catch(Exception ex) { } }
Мой вопрос здесь: можно ли получить доступ к столбцу сущности после выполнения (рендеринг завершен)?
Что я уже пробовал:
Из точки as " dynamic SectionGroup = (Object) JobListItem.DataItem; " где он ничего не возвращает.