ASP.Net常见技术疑难解析(二)

  • 在两个GridView控件之间传值(方法一)

1,设置GridView1中做为参数值传递的列为模板列:

<asp:TemplateField HeaderText="地区" SortExpression="Territory">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server"
OnCommand="GridView1_onClick"
CommandArgument='<%# (String)DataBinder.Eval(Container,"DataItem.Territory") %>'
CommandName="TerritoryDrill"
Text='<%# (String)DataBinder.Eval(Container,"DataItem.Territory") %>'></asp:LinkButton>
</ItemTemplate>
<ItemStyle Height="15px" HorizontalAlign="Left" Width="150px" />
</asp:TemplateField>

2,获得GridView1中点击的行索引号:

protected void GridView1_onClick(object sender, CommandEventArgs e)
    {
        string TerritoryName = e.CommandArgument.ToString().Trim();
        LinkButton lb = (LinkButton)sender;
        DataControlFieldCell dcfc = (DataControlFieldCell)lb.Parent;
        GridViewRow gvr = (GridViewRow)dcfc.Parent;
        GridView1.SelectedIndex = gvr.RowIndex;
    }

3,设置GridView2的数据源的参数值:

<SelectParameters>
     <asp:ControlParameter ControlID="GridView1" Name="Territory"
         PropertyName="SelectedValue" DefaultValue="" Type="String" />
</SelectParameters>

这样当用户点击GridView1中的某行中的LinkButton控件,就会触发GridView1_onClick事件,该事件可以获得点击行的索引号,当GridView1.SelectedIndex值发生变化时,就会触发GridView2控件的DataBound事件,并将点击行的索引号传递给GridView2的数据源的参数.这样就实现了点击GridView1,在GridView2中检索相关数据的功能.

  • 在两个GridView控件之间传值(方法二)

利用Session变量实现两个控件之间的传值.

设置FormView1的数据源的参数值:

<SelectParameters>
    <asp:SessionParameter Name="EmployeeID" SessionField="EmployeeID"  Type="Int32" />
</SelectParameters>

protected void GridView2_onClick(object sender, CommandEventArgs e)
{
    string[] TerritoryName = e.CommandArgument.ToString().Trim();
    Session["EmployeeID"] = TerritoryName;
    FormView1.DataBind();
}

当点击GridView2中的行中的传值列时,取出行中的LinkButton控件的参数并将它保存到Session["EmployeeID"]中,并触发FormView1的DataBound事件.从而实现点击GridView2,在FormView1中检索相关数据的功能.

转载于:https://www.cnblogs.com/luckeryin/archive/2008/12/04/1347968.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值