如何使用锚标记在gridview内找到gridview [英] How can I find gridview inside gridview with anchor tag

查看:98
本文介绍了如何使用锚标记在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆