用户控件中的gridview加入按钮列和参数传递有关问题

用户控件中的gridview加入按钮列和参数传递问题
本帖最后由 bulls5988 于 2015-06-14 13:16:11 编辑
新手求教,自学ASP.NET遇到的问题。调用用户控件Person_list.ascx,控件中Gridview1加入了自定义按钮列。
现在要做到点击任意一行的按钮“查看”后。卸载当期调用的控件 "Person_list.ascx" 调用用户控件“Person_mx.ascx”
并且把点击按钮所在那一行的ID字段,作为Person_mx.ascx里Girdview2 的查询条件 "select * table ids = 'id' ";的参数
用户控件中的gridview加入按钮列和参数传递有关问题
<div id ="dv" >
<asp:PlaceHolder ID ="user" runat="server"></asp:PlaceHolder>
</div>

public partial class Main : System.Web.UI.Page
{
public string mynames = string.Empty;
    protected string auth_string = string.Empty;
    protected int auth = 0;
   
    protected void Page_Load(object sender, EventArgs e)
    {
        mynames = Session["names"].ToString();
        auth = Convert.ToInt32(Session["aut"]);
        
        if(mynames ==string.Empty)
        {
            Server.Transfer("Default.aspx");
        }

        if (auth == 1)
        {
            auth_string = "管理员";
            user.Controls.Add(TemplateControl.LoadControl("~/Person_list.ascx"));
        }
    
    }


Person_mx.ascx

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
    AutoGenerateColumns="False" 
    DataSourceID="SqlDataSource1" BackColor="White" BorderColor="#CCCCCC" 
    BorderStyle="None" BorderWidth="1px" CellPadding="5" Width="640px">
    <FooterStyle BackColor="White" ForeColor="#000066" />
    <RowStyle ForeColor="#000066" />
    <Columns>
        <asp:BoundField DataField="user_id" HeaderText="编号" InsertVisible="False" 
            ReadOnly="True" SortExpression="user_id" />
        <asp:BoundField DataField="user_number" HeaderText="工号" 
            SortExpression="user_number" />
        <asp:BoundField DataField="user_names" HeaderText="姓名" 
            SortExpression="user_names" />
        <asp:BoundField DataField="user_part" HeaderText="部门" 
            SortExpression="user_part" />
        <asp:TemplateField HeaderText ="操作"><ItemTemplate>
        <asp:Button ID="names" Text="查看" runat="server" 
        CommandArgument='<%# Eval("user_names")%>'/>
        </ItemTemplate></asp:TemplateField>
    </Columns>
    <PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
    <SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
    <HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:dv1sql %>" 
    SelectCommand="SELECT [user_id], [user_number], [user_names], [user_part], 
[user_flag], [user_addtime] FROM [Employee]" 

    <DeleteParameters>
        <asp:Parameter Name="original_user_id" Type="Int32" />
    </DeleteParameters>
    <UpdateParameters>
        <asp:Parameter Name="user_number" Type="String" />
        <asp:Parameter Name="user_names" Type="String" />
        <asp:Parameter Name="user_part" Type="String" />
        <asp:Parameter Name="user_flag" Type="Int64" />
        <asp:Parameter Name="user_addtime" Type="DateTime" />
        <asp:Parameter Name="original_user_id" Type="Int32" />
    </UpdateParameters>
    <InsertParameters>
        <asp:Parameter Name="user_number" Type="String" />
        <asp:Parameter Name="user_names" Type="String" />
        <asp:Parameter Name="user_part" Type="String" />
        <asp:Parameter Name="user_flag" Type="Int64" />
        <asp:Parameter Name="user_addtime" Type="DateTime" />
    </InsertParameters>
</asp:SqlDataSource>


------解决思路----------------------
你想实现主从表吧?
------解决思路----------------------
用两个gridview,默认设置第一个display,按下按钮会触发表单提交ID刷新页面,CS里面request取得ID,隐藏第一个gridview,设置第二个display