<asp:TemplateColumn> <HeaderTemplate>         <asp:LinkButton id="Linkbutton1" onclick="cmdSort_Click" Runat="server" CommandArgument="jhmc">名称</asp:LinkButton> </HeaderTemplate> <ItemTemplate>          
        <asp:HyperLink id="Hyperlink7" Runat="server"></asp:HyperLink> </ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn> <HeaderTemplate>         <asp:LinkButton id="Linkbutton2" onclick="cmdSort_Click" Runat="server" CommandArgument="jhmc">性别</asp:LinkButton> </HeaderTemplate> <ItemTemplate>          
        <asp:HyperLink id="Hyperlink7" Runat="server"></asp:HyperLink> </ItemTemplate>
</asp:TemplateColumn>
我需要设置LinkButton1.Text="名称(升)";Linkbutton2.Text="性别"。
或LinkButton1.Text="名称";Linkbutton2.Text="性别(升)"。问,在.cs文件中,如何访问Linkbutton1,LinkButton2?

解决方案 »

  1.   

    //Page_Load()中
    //((LinkButton)(MyDataGrid.FindControl("LinkButton1")))  //Linkbutton1
    //((LinkButton)(MyDataGrid.FindControl("LinkButton2")))  //linkbutton2事件声名:((LinkButton)(MyDataGrid.FindControl("LinkButton1"))).CommandArgument="";
    ((LinkButton)(MyDataGrid.FindControl("LinkButton1"))).Command +=new CommandEventHandler(LinkButton1_Command);
    /////////////////////////////////
    private void LinkButton1_Command(object sender, CommandEventArgs e)
    {
    }
      

  2.   

    在itemdatabound里写
    if(是页眉)
    {
        if(条件)
        { 
            第一列。text="名称(升)";
            第二列。text="性别";
         }
         else
        { 
            第一列。text="名称";
            第二列。text="性别(升)";
         }
    }
      

  3.   

    ((LinkButton)(MyDataGrid.FindControl("LinkButton1")))  //Linkbutton1
    ((LinkButton)(MyDataGrid.FindControl("LinkButton2")))  //linkbutton2这两个就是CS里的访问样子和普通的LinkButton同样用
      

  4.   

    ((LinkButton)(MyDataGrid.FindControl("LinkButton1")))  //Linkbutton1
    ((LinkButton)(MyDataGrid.FindControl("LinkButton2")))  //linkbutton2
    之前最好还判断下,防止强行转换出错。
      

  5.   

    你可以访问DataGrid的Items[...], 如果是在onDataBind或OnItemCreate等事件中用e.Item访问
    if(Item.ItemType==ListItemType.Head)
    {
      LinkButton btn = Item.Cells[n].FindControl("LinkButton1");//n 是那一列的序号
      if (btn != null)
        btn.Text = "名称(升)"
    }
    类似的其他列也可以这么做
      

  6.   

    MyDataGrid.FindControl("LinkButton1")根本就找不到控件。
      

  7.   

    ItemDataBound里
    if(e.Item.ItemType==ListItemType.Header)
    {
    LinkButton lbt1 = (LinkButton)e.Item.FindControl("Linkbotton1");
    LinkButton lbt2 = (LinkButton)e.Item.FindControl("Linkbotton2");
    ...
    lbt1.Text="xxxx";
    lbt2.Text="yyyy";
    ...}
      

  8.   

    public void dtgposition_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    if(e.CommandName=="LinkButtonID")
    {}
    }
      

  9.   

    在ItemDataBound的时候我不需要设置linkbutton,有更个一个按钮事件,设置linkbutton1、linkbutton2的文本,怎么办?
    注意,我需要在ItemDataBound事件外,修改/访问Linkbutton1\linkbutton2的属性。
    以下两方法根本不行:
    1、DataGrid.FindControl("LinkButton1")根本就找不到控件
    2、ItemDataBound时,我还不需要修改/访问button对象。我需要在ItemDataBound事件外访问对象。
    请大家再帮忙想想。
    我试了,除ItemDataBound事件之外,DataGrid好象再也访问/修改了head中的控件控件了。而我的程序中,需要在ItemDataBound事件之外访问head中的控件属性。
      

  10.   

    看清楚是DataGrid里面的表示一行的Item.FindControl, 不是DataGrid.FindControl
      

  11.   

    “看清楚是DataGrid里面的表示一行的Item.FindControl, 不是DataGrid.FindControl”
    Iitm是哪来的?
    是在ItemDataBound是事件中的吧?ItemDataBound事件时,我并不需要访问/修改button。我要在别的事件中,访问/修改button。
    别的事件中,只有和DataGrid.Items[i],可这时无法返回Grid头。
      

  12.   

    ((LinkButton)e.Item.FindControl("LinkButton1ID"))....
    ((LinkButton)e.Item.FindControl("LinkButton2ID"))....
      

  13.   

    ((LinkButton)e.Item.FindControl("LinkButton1ID"))....e.item是从来的?是ItemDataBound事件吧?
      

  14.   

    设定一个全局变量,在其他事件里改变值,根据值,在ItemDataBound里改变LinkBotton的Text
      

  15.   

    ItemDataBound事件中,可以访问所有head中的控件。这时,把所有的控件存到一个全局的Arraylist中。
    但页面重载入时,全局变量就丢了。还是起不到要随时访问Grid的Head中控件的做用。
      

  16.   

    就是想确认一下,是不是除了ItemDataBound事件时,其它时候都无法访问/设置Head中的控件中属性啊?如果其它时候也可以,请问如何访问?
    不要再说用
    if(e.Item.ItemType==ListItemType.Header)
    {
    LinkButton lbt1 = (LinkButton)e.Item.FindControl("Linkbotton1");
    LinkButton lbt2 = (LinkButton)e.Item.FindControl("Linkbotton2");
    }这种方法了。
    我说的是CS文件中的除ItemDataBound以外的事件中。