을 사용하여 하위 gridview
에 저장 프로 시저를 호출하려고합니다.SQL 데이터 소스에 동적 매개 변수를 바인드하지 않음
이 내가 뭘하는지입니다 : 또한
<obout:Grid runat="server" ID="grid1" AutoGenerateColumns="false" PageSize="10" FolderStyle="~/Styles/Grid/premiere_blue"
AllowAddingRecords="true" Width="100%">
<Columns>
<obout:CheckBoxSelectColumn ShowHeaderCheckBox="true" ControlType="Standard" Visible="false">
</obout:CheckBoxSelectColumn>
<obout:Column ID="Column1" DataField="mkey" HeaderText="mkey" Width="8%" runat="server" Wrap="true" Visible="true">
</obout:Column>
<obout:Column DataField="Doc_No" Visible="true" HeaderText="I/W No" Width="12%" runat="server" Wrap="true">
</obout:Column>
<obout:Column DataField="DocType" Visible="true" HeaderText="Doc Type" Width="8%" runat="server" Wrap="true">
</obout:Column>
<obout:Column Visible="false" DataField="Party_Mkey" HeaderText="Party Mkey" Width="0" runat="server" Wrap="true">
</obout:Column>
<obout:Column Visible="true" DataField="Party_Name" HeaderText="Party Name" Width="10%" runat="server" Wrap="true">
</obout:Column>
<obout:Column Visible="true" DataField="LastAction_DateTime" HeaderText="Last Action Date" Width="8%" runat="server" Wrap="true">
</obout:Column>
<obout:Column Visible="false" DataField="Status_Flag" HeaderText="Status Flag" Width="0" runat="server" Wrap="true">
</obout:Column>
<obout:Column Visible="true" DataField="CurrStatus" HeaderText="Curr Status" Width="8%" runat="server" Wrap="true">
</obout:Column>
<obout:Column Visible="false" DataField="To_Department" HeaderText="Department_Id" Width="0" runat="server" Wrap="true">
</obout:Column>
<obout:Column Visible="true" DataField="Type_Desc" HeaderText="Resp Dept" Width="10%" runat="server" Wrap="true">
</obout:Column>
<obout:Column Visible="false" DataField="To_User" HeaderText="User_Id" Width="0" runat="server" Wrap="true">
</obout:Column>
<obout:Column Visible="true" DataField="UserName" HeaderText="Resp User" Width="8%" runat="server" Wrap="true">
</obout:Column>
<obout:Column Visible="true" DataField="No_Of_Days" HeaderText="No Of Days" Width="10%" runat="server" Wrap="true">
</obout:Column>
<obout:Column DataField="Status" HeaderText="Status" Visible="true" Width="10%" runat="server" Wrap="true">
<TemplateSettings TemplateId="tplStatusWeb" />
</obout:Column>
<obout:Column DataField="View" HeaderText="View" Visible="true" Width="5%" runat="server" Wrap="true">
<TemplateSettings TemplateId="tplViewWeb" />
</obout:Column>
</Columns>
<Templates>
<obout:GridTemplate runat="server" ID="tplStatusWeb">
<Template>
<a href="#" runat="server" id="txtStatus"></a>
</Template>
</obout:GridTemplate>
<obout:GridTemplate runat="server" ID="tplViewWeb">
<Template>
<a href="#" runat="server" id="txtView"></a>
</Template>
</obout:GridTemplate>
</Templates>
<%--Child grid--%>
<MasterDetailSettings LoadingMode="OnCallback" ShowEmptyDetails="true" />
<DetailGrids>
<obout:DetailGrid runat="server" ID="grid2" Width="80%" AutoGenerateColumns="false"
AllowAddingRecords="false" ShowFooter="true" PageSize="5" DataSourceID="sqldt2"
FolderStyle="~/Styles/Grid/premiere_blue" ForeignKeys="mkey">
<ClientSideEvents ExposeSender="true" OnClientPopulateControls="onPopulateControls" />
<Columns>
<obout:Column ID="mkey" DataField="mkey" HeaderText="mkey" Width="15%" runat="server"
Wrap="true" Visible="true">
</obout:Column>
<obout:Column DataField="NextStatus" HeaderText="Next Status" Width="10%" runat="server"
Wrap="true" Visible="true">
</obout:Column>
<obout:Column DataField="Name" HeaderText="Name" Width="10%" runat="server" Wrap="true"
Visible="true">
</obout:Column>
<obout:Column DataField="Type_Desc" HeaderText="Description" Width="10%" runat="server"
Wrap="true" Visible="true">
</obout:Column>
<obout:Column DataField="No_of_Days" HeaderText="No of Days" Width="5%" runat="server"
Wrap="true" Visible="true">
</obout:Column>
<obout:Column DataField="CUser_ID" HeaderText="User Id" Width="10%" runat="server"
Wrap="true" Visible="true">
</obout:Column>
<obout:Column DataField="CDept_ID" HeaderText="Dept Id" Width="10%" runat="server"
Wrap="true" Visible="true">
</obout:Column>
<obout:Column DataField="NStatus_flag" HeaderText="Status flag" Width="10%" runat="server"
Wrap="true" Visible="true">
</obout:Column>
<obout:Column DataField="Remarks" HeaderText="Remarks" Width="15%" runat="server"
Wrap="true" Visible="true">
</obout:Column>
</Columns>
</obout:DetailGrid>
</DetailGrids>
</obout:Grid>
, 나는이 같은 SqlDataSource
을 사용하고 있습니다 : 현재, 나는 SqlDataSource
의 각 매개 변수에 대한 기본값을 제공하고
<asp:SqlDataSource runat="server" ID="sqldt2" ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="Sp_Inward_Hdr_Trl_Link_trl"
SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:Parameter Name="StrPriCondition" Type="String" DefaultValue=" and IH.To_Department in (1053) and IH.Last_To_User =154" />
<asp:Parameter Name="StrPriCondition2" Type="String" DefaultValue=" and IH.To_Department in (1053) and IH.To_User=154" />
<asp:Parameter Name="StrPriCondition3" Type="String" DefaultValue=" and T1.dept_Mkey in (1053) and U.mkey=154" />
</SelectParameters>
</asp:SqlDataSource>
.
이 3 개의 매개 변수를 자식 gridview에 동적으로 바인딩하고 싶습니다.
동적으로 바인딩하는 방법은 무엇입니까? 제발 제안 해주세요.
UPDATE는 나빈의 제안에 따라, 나는 RowDataBound로했습니다.
protected void Grid_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string gridId = Grid1.DataKeys[e.Row.RowIndex].Value.ToString();
GridView grid2 = e.Row.FindControl("Grid2") as GridView;
/*grid2.DataSource = (string.Format("select top 3 * from Orders where CustomerId='{0}'", gridId)); // Bind gridview with SP ?
grid2.DataBind(); */
}
}
동적으로 무엇을 의미합니까? – Igor
@Igor : 현재, 'defaultvalue'를 사용하지 않고'StrPriCondition'을 설정할 때. 데이터를 바인딩하지 않습니다. 하지만 'Defaultvalue'를 사용하면 각 행에 대해 동일한 데이터를 바인딩합니다. 그래서 내가 작동하지 않는 매개 변수를 사용하여 바인딩하려면 – BNN
RowDataBound 이벤트를 사용하여 자식 그리드에 데이터를 바인딩 할 수 있습니까? – naveen