GridView中取HyperLinkField列和ButtonField列的值的问题

因为需要对GridView中HyperLinkField列和ButtonField列的取值,搜索了一下看到好多资料都是这样写的:  
           string str = ((HyperLink)row.Cells[1].Controls[0]).Text;
           string str2 = ((Button)row.Cells[2].Controls[0]).Text;   //注意红色部分
可是我这样取的话会报:无法将类型为“System.Web.UI.WebControls.DataControlLinkButton”的对象强制转换为类型“System.Web.UI.WebControls.Button”。

。。。。。。。

我是这样写的:
            string str = ((HyperLink)row.Cells[1].Controls[0]).Text;
            string str2 = ((LinkButton)row.Cells[2].Controls[0]).Text;  //应该是LinkButton类型的

下面代码,主要是记录下来怎样New 一个 DataTable 并添加数据的代码。留作自己备用。
HTML中代码:
    

HTML部分的代码
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" >
            
<Columns>
                
<asp:TemplateField  HeaderText="选择">
                    
<HeaderStyle Width="4%"></HeaderStyle>
                    
<ItemTemplate >
                        
<FONT face="宋体">
                            
<asp:CheckBox id="chkID" runat="server"></asp:CheckBox></FONT>
                    
</ItemTemplate>
                    
<ItemStyle Width="5%" HorizontalAlign="Center" />
                
</asp:TemplateField>
                
<asp:HyperLinkField  DataNavigateUrlFields="UserCode"
                                        DataTextField
="UserCode" HeaderText="Code" >
                                        
<ItemStyle Width="10%" />
                
</asp:HyperLinkField>
                
<asp:ButtonField DataTextField="UserName" HeaderText="Name" Text="按钮" />
                
<asp:BoundField DataField="UserSex" HeaderText="Sex" />
            
</Columns>
        
</asp:GridView>
        
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />

后台代码:
后台添加数据

    
protected void Page_Load(object sender, EventArgs e)
    
{
        
if (!Page.IsPostBack)
        
{
            DataTable dt 
= new DataTable();
            DataColumn dc1 
= new DataColumn("UserCode",Type.GetType("System.String"));
            DataColumn dc2 
= new DataColumn("UserName", Type.GetType("System.String"));
            DataColumn dc3 
= new DataColumn("UserSex", Type.GetType("System.Int32"));

            dt.Columns.Add(dc1);
            dt.Columns.Add(dc2);
            dt.Columns.Add(dc3);


            DataRow dr 
= dt.NewRow();

            dr[
"UserCode"= "Code 1";
            dr[
"UserName"= "Name 1";
            dr[
"UserSex"= 1;

            dt.Rows.Add(dr);

            GridView1.DataSource 
= dt;

            GridView1.DataBind();
        }

    }

    
protected void Button1_Click(object sender, EventArgs e)
    
{
        
int i = 1;
        
foreach (GridViewRow row in this.GridView1.Rows)
        
{
            
//if (i == 5)
            
//{
            string str = ((HyperLink)row.Cells[1].Controls[0]).Text;

            
string str2 = ((LinkButton)row.Cells[2].Controls[0]).Text;

            
string str3 = row.Cells[3].Text.Equals("1"? "" : "";

            Page.ClientScript.RegisterStartupScript(
this.GetType(),"alert","alert('"+str + "\\r\\n" + str2 + "\\r\\n" + str3+"');",true);
            
//}
            
//i++;

        }

    }

  

转载于:https://www.cnblogs.com/shiye/archive/2007/08/31/877232.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值