koklimabc Ответов: 0

Колонки доступ после нажмите на кнопку дочерние таблицы (после оказанных)


В соответствии с темой, если таковые имеются, можно ли получить доступ к значениям полей столбца сущности (уже назначенным из запроса в 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; " где он ничего не возвращает.

0 Ответов