如何使用锚标记在gridview内找到gridview [英] How can I find gridview inside gridview with anchor tag
本文介绍了如何使用锚标记在gridview内找到gridview的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是我的代码。我想在另一个gridview (grdVoucher)中的锚标记(lnkVoucher)中找到gridview (grdVDetails)。但它返回null。请帮忙。
Here is my code. I want to find gridview ("grdVDetails") inside anchor tag ("lnkVoucher") in another gridview ("grdVoucher"). But it returns null. Please help.
<asp:GridView ID="grdVoucher" runat="server" AutoGenerateColumns="False" OnRowCommand="grdVoucher_RowCommand"
OnRowDataBound="grdVoucher_RowDataBound" Width="100%">
<Columns>
<asp:TemplateField HeaderText="Voucher No">
<ItemTemplate>
<a id="lnkVoucher" href="java<!-- no -->script:" runat="server">
<div id="HidePODetail">
<asp:GridView ID="grdVDetails" runat="server" AutoGenerateColumns="False" OnRowDataBound="grdVDetails_RowDataBound"
Width="100%">
<Columns>
<asp:TemplateField HeaderText="Head Code">
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Head Name"></asp:TemplateField>
<asp:TemplateField HeaderText="Debit"></asp:TemplateField>
<asp:TemplateField HeaderText="Credit"></asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</a>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
</Columns>
</asp:GridView>
C#代码是:
C# code is:
protected void grdVoucher_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
sp_Acc_ReadAll_JournalVoucherResult entry = e.Row.DataItem as sp_Acc_ReadAll_JournalVoucherResult;
HtmlAnchor lnkVoucher = e.Row.FindControl("lnkVoucher") as HtmlAnchor;
lnkVoucher.InnerText = entry.VoucherNo;
GridView grdVDetails = e.Row.FindControl("grdVDetails") as GridView;
List<Acc_Transation> list = CAccTransation.GetAllTransationByVoucherCode(entry.VoucherNo);
grdVDetails.DataSource = list;
grdVDetails.DataBind();
}
}
推荐答案
检查这个out:使用C#在ASP.NET中嵌套GridView [< a href =http://www.codeproject.com/Articles/685079/Nested-GridView-in-ASP-NET-using-Csharptarget =_ blanktitle =New Window> ^ ]
Check this out: Nested GridView in ASP.NET using C#[^]
哦,我自己解决了。我只是使用另一个标签来绑定其上的数据,并释放锚标签的innertext。然后我很容易得到gridview。
Oh I solved it myself. I just use another tag to bind data innertext on it and make free the innertext of anchor tag. Then I easily get the gridview.
protected void grdVoucher_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
sp_Acc_ReadAll_JournalVoucherResult entry = e.Row.DataItem as sp_Acc_ReadAll_JournalVoucherResult;
HtmlAnchor lnkVoucher = e.Row.FindControl("lnkVoucher") as HtmlAnchor;
//lnkVoucher.InnerText = entry.VoucherNo;
HtmlGenericControl spVoucher = e.Row.FindControl("spVoucher") as HtmlGenericControl;
spVoucher.InnerText = entry.VoucherNo;
e.Row.Cells[1].Text = entry.Debit.ToString();
e.Row.Cells[2].Text = entry.Credit.ToString();
e.Row.Cells[3].Text = Convert.ToDateTime(entry.Date).ToShortDateString();
LinkButton lnkEdit = e.Row.FindControl("lnkEdit") as LinkButton;
lnkEdit.CommandArgument = entry.VoucherNo;
LinkButton lnkDelete = e.Row.FindControl("lnkDelete") as LinkButton;
lnkDelete.CommandArgument = entry.VoucherNo;
GridView grdVDetails = e.Row.FindControl("grdVDetails") as GridView;
List<Acc_Transation> list = CAccTransation.GetAllTransationByVoucherCode(entry.VoucherNo);
grdVDetails.DataSource = list;
grdVDetails.DataBind();
}
}
这篇关于如何使用锚标记在gridview内找到gridview的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文