我将2个用户控件放在panel中 然后在button的onclick事件中加入下面代码控制他的显示
Control a=(Control)this.Panel1.FindControl("Ptsr");
a.Visible=false;
我的这个ptsr用户控件代码如下:
前台代码
<%@ Control Language="c#" AutoEventWireup="false" Codebehind="ptsr.ascx.cs" Inherits="hotel.user.checkout" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>
<%@ Import Namespace="hotel" %>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="1">
<TR>
<TD colSpan="3"><FONT face="宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT><FONT face="宋体">
<asp:DataList id="DataList1" runat="server" RepeatDirection="Horizontal" RepeatColumns="6" Width="100%">
<HeaderTemplate>
普通双人间
</HeaderTemplate>
<ItemTemplate>
<table>
<tr>
<td colspan="2">
<a href='content.aspx?RID=<%#DataBinder.Eval(Container.DataItem,"RID")%>' target="_blank">
<img src='<%= Global.GetApplicationPath(Request) %>/images/<%#DataBinder.Eval(Container.DataItem,"address")%>' border=0></a>
</td>
</tr>
<tr>
<td><%#DataBinder.Eval(Container.DataItem,"RID")%></td>
<td>
<asp:LinkButton Runat="server" CommandName="select" ID="Linkbutton2" NAME="Linkbutton1">操作</asp:LinkButton></a>
</td>
</tr>
</table>
</ItemTemplate>
<SelectedItemTemplate>
<table>
<tr>
<td colspan="2">
<asp:LinkButton ID="Linkbutton1" Runat="server" Font-Underline="False" CommandArgument='<%#DataBinder.Eval(Container.DataItem,"RID")%>' CommandName="show">
<img src='<%= Global.GetApplicationPath(Request) %>/images/<%#DataBinder.Eval(Container.DataItem,"address")%>' border=0></asp:LinkButton>
</td>
</tr>
<tr>
<td>
<asp:LinkButton Runat="server" ID="LinkBtn" CommandName="srt" CommandArgument='<%#DataBinder.Eval(Container.DataItem,"url1")%>' text='<%#DataBinder.Eval(Container.DataItem,"event1")%>'>
</asp:LinkButton></td>
<td><a href='<%#DataBinder.Eval(Container.DataItem,"url")%>'><%#DataBinder.Eval(Container.DataItem,"event")%></a>
</td>
</tr>
</table>
</SelectedItemTemplate>
<HeaderStyle Font-Names="黑体" Font-Bold="True" HorizontalAlign="Left" ForeColor="IndianRed" VerticalAlign="Middle"
BackColor="#FF9933"></HeaderStyle>
</asp:DataList></FONT><FONT face="宋体"></FONT></TD>
</TR>
</TABLE>

解决方案 »

  1.   

    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面

    ListBind();


                

    }
    public void ListBind()
    {
    string str="Select * from Room,RoomState where RID=SRID and RName='普通标准间' and RBedQuantity='2'";
    ConDB con=new ConDB();
    SqlConnection cn=con.con(); 


    SqlDataReader dr1=con.read(str,cn);


    DataSet ds1=new DataSet ();
    ds1.Tables.Add("fg");
    ds1.Tables["fg"].Columns.Add("RID",System.Type.GetType("System.Int16"));
    ds1.Tables["fg"].Columns.Add("address",System.Type.GetType("System.String"));
    ds1.Tables["fg"].Columns.Add("event",System.Type.GetType("System.String"));
    ds1.Tables["fg"].Columns.Add("event1",System.Type.GetType("System.String"));
    ds1.Tables["fg"].Columns.Add("url",System.Type.GetType("System.String"));
    ds1.Tables["fg"].Columns.Add("url1",System.Type.GetType("System.String"));
    while(dr1.Read())
    {
    DataRow dr=ds1.Tables["fg"].NewRow();
    int p=Convert.ToInt16(dr1["RID"]);
    dr["RID"]=p;

    string c=dr1["SState"].ToString();
    if(c=="有人")
    {
    dr["address"]="2.gif";
    dr["event"]="退房";
    dr["event1"]="续住";
    dr["url"]="ResouceRoom.aspx?ORID="+p;
    dr["url1"]="Guest.aspx?rid="+p+"&ms=1";
    }
    if(c=="无人")
    {
    dr["address"]="1.gif";
    dr["event"]="住房";
    dr["event1"]="预定";
    dr["url"]="Guest.aspx?rid="+p+"&ms=0";
    dr["url1"]="Book.aspx?rid="+p;
    }
    if(c=="预定")
    {
    dr["address"]="3.gif";
    dr["event"]="住房";
    dr["event1"]="撤消";
    dr["url"]="Guest.aspx?rid="+p+"&ms=2";
    dr["url1"]="";
    }

    ds1.Tables["fg"].Rows.Add(dr);
    }
    dr1.Close();
    cn.Close();
    this.DataList1.DataSource=ds1.Tables["fg"].DefaultView;
    this.DataList1.DataBind();
    }

    #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器
    /// 修改此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {
    this.DataList1.ItemCommand += new System.Web.UI.WebControls.DataListCommandEventHandler(this.DataList1_ItemCommand);
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion private void DataList1_ItemCommand(object source, System.Web.UI.WebControls.DataListCommandEventArgs e)
    {

    this.DataList1.SelectedIndex=e.Item.ItemIndex;
    ListBind();
    if(e.CommandName.ToString()=="srt")
    {
    string sh=e.CommandArgument.ToString();
    LinkButton sg=(LinkButton)e.Item.FindControl("LinkBtn");
    LinkButton sd=(LinkButton)e.Item.FindControl("Linkbutton1");
    string te=sg.Text.ToString();

    string tt=sd.CommandArgument.ToString();
    if(te=="撤消")
    {
    string str="delete from Occupy where ORID='"+tt+"' ";
    string str1="update RoomState set SState='无人' where SRID='"+tt+"'";
    ConDB con1=new ConDB();
    con1.del(str,str1);
    Response.Redirect("index.aspx");
    }
    else
    { Response.Redirect(sh);
    }
    }

    }
    }
    }
      

  2.   

    请问为什么我点击用户控件上的Linkbutton2" 就是那个datalist上的按钮,页面突然变成空。白。
    需要再点下button按钮才能显示出来,我原来不是这样的 不知道为什么现在变成这样了
    望高手助我 我在这里深表感谢
      

  3.   

    你一定EnableViewState="False"这么作了,快倒回来
      

  4.   

    EnableViewState="False"
    这个怎么做  我好象没有这么做过啊
      

  5.   

    好长的代码,把ViewState禁用了
      

  6.   

    还是不行啊 我好象没有改过他们的这个属性  我刚去去各个控件的属性 他的的EnableViewState属性都是true