嵌套的 Gridview 在每一行 DataBound 上显示相同的数据并在子 Gridview 中下载文件
Nested Gridview Showing Same Data on every row DataBound & downloading a file within Child Gridview
我有一个父 GridView 和一个子 GridView。
子 gridview 由存储在父 DataSet Table.
中的值填充
child Gridview with Same Data
我需要我的行根据 ReportCode 获取数据。
这是我的代码:-
protected void GridView1_OnRowDataBound(object sender, GridViewRowEventArgs e)
{
try
{
DataSet dstReportsCodes = getReportCode();
dst = new DataSet();
if (e.Row.RowType == DataControlRowType.DataRow)
{
string pub_id = GridView1.DataKeys[e.Row.RowIndex].Value.ToString();
dm.Open();
//dst = dm.ApprovalExpense("SelectForReport", "Exp-4OWTR", "", "", "", "", "", ""); // which are the expenses
if (dstReportsCodes.Tables[0].Rows.Count > 0)
{
for (int i = 0; i < dstReportsCodes.Tables[0].Rows.Count; i++)
{
dst = null;
dst = dm.ApprovalExpense("SelectForReport", Convert.ToString(dstReportsCodes.Tables[0].Rows[i]["ReportCode"]), "", "", "", "", "", "");
GridView pubTitle = (GridView)e.Row.FindControl("GridView2");
pubTitle.DataSource = dst.Tables[0];
pubTitle.DataBind();
}
}
dm.Close();
}
}
catch (Exception ex) { lblErrorText.Text = ex.ToString(); }
}
注意:getReportCode() 是返回带有报告代码的数据集的函数,ReportCode 的获取方式如下
Report Code Image
现在这些报告代码用于获取 Child Gridview 每一行的数据,详细信息正常但每次都绑定相同的数据。
非常感谢您的一点帮助,提前谢谢。
编辑
现在我需要下载一个存在于子 gridview 中的文件。
最好的方法是什么/
我应该通过什么论点? (比如地址之类的?)
我需要在不折叠子 gridview 的情况下下载文件。
child grid image
当您使用 RowDataBound 时,您已经拥有从 getReportCode() 方法获取的那些行项目。您所要做的就是在使用 RowDataBound 进行迭代时读取这些项目。在您的情况下,您可以使用以下代码来读取 ReportCode。
string reportCode = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "ReportCode"));
接下来,您所要做的就是将 reportCode 作为参数传递到您的 ApprovalExpense 方法中。
dst = dm.ApprovalExpense("SelectForReport", reportCode, "", "", "", "", "", "");
GridView pubTitle = (GridView)e.Row.FindControl("GridView2");
我有一个父 GridView 和一个子 GridView。
子 gridview 由存储在父 DataSet Table.
child Gridview with Same Data
我需要我的行根据 ReportCode 获取数据。
这是我的代码:-
protected void GridView1_OnRowDataBound(object sender, GridViewRowEventArgs e)
{
try
{
DataSet dstReportsCodes = getReportCode();
dst = new DataSet();
if (e.Row.RowType == DataControlRowType.DataRow)
{
string pub_id = GridView1.DataKeys[e.Row.RowIndex].Value.ToString();
dm.Open();
//dst = dm.ApprovalExpense("SelectForReport", "Exp-4OWTR", "", "", "", "", "", ""); // which are the expenses
if (dstReportsCodes.Tables[0].Rows.Count > 0)
{
for (int i = 0; i < dstReportsCodes.Tables[0].Rows.Count; i++)
{
dst = null;
dst = dm.ApprovalExpense("SelectForReport", Convert.ToString(dstReportsCodes.Tables[0].Rows[i]["ReportCode"]), "", "", "", "", "", "");
GridView pubTitle = (GridView)e.Row.FindControl("GridView2");
pubTitle.DataSource = dst.Tables[0];
pubTitle.DataBind();
}
}
dm.Close();
}
}
catch (Exception ex) { lblErrorText.Text = ex.ToString(); }
}
注意:getReportCode() 是返回带有报告代码的数据集的函数,ReportCode 的获取方式如下 Report Code Image
现在这些报告代码用于获取 Child Gridview 每一行的数据,详细信息正常但每次都绑定相同的数据。
非常感谢您的一点帮助,提前谢谢。
编辑
现在我需要下载一个存在于子 gridview 中的文件。
最好的方法是什么/
我应该通过什么论点? (比如地址之类的?)
我需要在不折叠子 gridview 的情况下下载文件。
child grid image
当您使用 RowDataBound 时,您已经拥有从 getReportCode() 方法获取的那些行项目。您所要做的就是在使用 RowDataBound 进行迭代时读取这些项目。在您的情况下,您可以使用以下代码来读取 ReportCode。
string reportCode = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "ReportCode"));
接下来,您所要做的就是将 reportCode 作为参数传递到您的 ApprovalExpense 方法中。
dst = dm.ApprovalExpense("SelectForReport", reportCode, "", "", "", "", "", "");
GridView pubTitle = (GridView)e.Row.FindControl("GridView2");