У меня есть Gridview с меткой, Radiobuttonlist и Nested Gridview, которые генерируются динамически после привязки к базе данных.Вложенный вид сетки имеет элементы управления, которые также связаны с базой данных.Я хочу привязать данные к этим элементам управления после их рендеринга.Я не могу понять это.Пожалуйста помоги!!!Данные для привязки находятся в методе bindtopgridwithdata ().Пожалуйста, помогите !!!
// -------------------------------- Ниже приводится aspxвебформа ------------
<asp:GridView ID="gvItems" Width="100%" runat="server"
AutoGenerateColumns="false" DataKeyNames="ItemID"
OnRowDataBound="OnRowDataBound" OnDataBinding="gvItems_DataBinding">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<table style="width: 100%">
<tr>
<td style="text-align: left; width: 50%">
<asp:Label ID="Label1" runat="server"
Text='<%# Eval("ItemName") %>' style="font-weight: 700"></asp:Label>
</td>
<td style="text-align: left; width: 50%">
<asp:RadioButtonList ID="RdbGradeTop"
runat="server" RepeatDirection="Horizontal" SelectedValue='<%#
Eval("GradeID") %>'>
</asp:RadioButtonList>
</td>
</tr>
<tr>
<td colspan="2" style="text-align: left; width:
100%">
<asp:Panel ID="pnlSubItem" runat="server">
<asp:GridView ID="gvSubItem"
runat="server" AutoGenerateColumns="false" DataKeyNames="SubItemID, ItemID"
OnRowCommand="gvOrders_RowCommand" OnRowDataBound="gvSubItem_RowDataBound">
<Columns>
<asp:BoundField
DataField="SubItemName" HeaderText="Sub Item Name" ItemStyle-Width="350px"
/>
<asp:TemplateField
HeaderText="Grade">
<ItemTemplate>
<asp:RadioButtonList
ID="RdbGrade" runat="server" RepeatDirection="Horizontal">
</asp:RadioButtonList>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</asp:Panel>
</td>
</tr>
<tr>
<td style="text-align:right !Important;">
<strong>Remarks: </strong>
</td>
<td style="text-align:left !Important;">
<asp:TextBox runat="server" ID="txtRemarks"
TextMode="MultiLine" Width="400px" Height="50px" Text='<%# Eval("Remarks")
%>' >
</asp:TextBox>
</td>
</tr>
</table>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
// -----------------------------------------------------------------------------
// ---------- Ниже приведен код aspx.cs позади ----------------------------
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
bindgrid();
// bindtopgridwithdata();
}
}
protected void bindgrid()
{
ItemIDbind, Item_M.ItemName FROM ObservationItem INNER JOIN Item_M ON
ObservationItem.ItemID = Item_M.ItemID where Item_M.IsActive=1");
gvItems.DataSource = clsobj.getDataTable("Select ItemID,ItemName from
Item_M where IsActive=1");
gvItems.DataBind();
}
protected void bindtopgridwithdata()
{
DataTable dt = clsobj.getDataTable(@"SELECT ObsItemID, ObsID, ItemID,
GradeID, Remarks, IsActive FROM ObservationItem");
gvItems.DataSource = dt;
gvItems.DataBind();
}
protected void OnRowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DataTable dt1 = clsobj.getDataTable("select GradeID,Grade from
Grade_M where IsActive=1");
RadioButtonList rbGradeTop =
(RadioButtonList)e.Row.FindControl("RdbGradeTop");
rbGradeTop.DataSource = dt1;
rbGradeTop.DataTextField = "Grade";
rbGradeTop.DataValueField = "GradeID";
rbGradeTop.DataBind();
string ItemID = gvItems.DataKeys[e.Row.RowIndex].Value.ToString();
GridView gvSubItem = e.Row.FindControl("gvSubItem") as GridView;
DataTable dt = clsobj.getDataTable(string.Format("select
SubItemID,SubItemName,ItemID from SubItem_M where IsActive=1 and
ItemID='{0}'", ItemID));
gvSubItem.DataSource = dt;
gvSubItem.DataBind();
// bindtopgridwithdata();
if (dt.Rows.Count != 0)
{
}
}
}
protected void gvOrders_RowCommand(object sender, GridViewCommandEventArgs e)
{
}
protected void gvSubItem_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DataTable dt = clsobj.getDataTable("select GradeID,Grade from Grade_M
where IsActive=1");
RadioButtonList rbGrade =
(RadioButtonList)e.Row.FindControl("RdbGrade");
rbGrade.DataSource = dt;
rbGrade.DataTextField = "Grade";
rbGrade.DataValueField = "GradeID";
rbGrade.DataBind();
}
}
protected void gvItems_DataBinding(object sender, EventArgs e)
{
// bindtopgridwithdata();
}