我在GRIDVIEW里定义了一个
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="编辑" runat="server" OnClick="编辑_Click" Text="编辑" />
</ItemTemplate>
</asp:TemplateField>
</Columns>protected void 编辑_Click(object sender, EventArgs e)
{
Button BT = sender as Button;
BT.Text = //this.GridView1.Rows[GridView1.SelectedRow.RowIndex].Cells[1].ToString();
//这里怎么获取当前行的索引?
}
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="编辑" runat="server" OnClick="编辑_Click" Text="编辑" />
</ItemTemplate>
</asp:TemplateField>
</Columns>protected void 编辑_Click(object sender, EventArgs e)
{
Button BT = sender as Button;
BT.Text = //this.GridView1.Rows[GridView1.SelectedRow.RowIndex].Cells[1].ToString();
//这里怎么获取当前行的索引?
}
//这里如何让GridView1.Columns[1].Visible = false;
GridView1.Columns[2].Visible = false;
GridView1.DataBind();???
至于第二个问题,你完全可以在前台绑定,不显示的字段就不绑定 如果你非要在后台控制 那么
HyperLinkField df1 = new HyperLinkField();
HyperLinkField df2 = new HyperLinkField();
BoundField bd1 = new BoundField();
BoundField bd2 = new BoundField();
df1.HeaderText = ds.Tables[0].Columns["标题"].ColumnName;
df2.HeaderText = ds.Tables[0].Columns["作者"].ColumnName;
bd1.HeaderText = ds.Tables[0].Columns["昵称"].ColumnName;
bd2.HeaderText = ds.Tables[0].Columns["最近回复"].ColumnName; df1.DataTextField = ds.Tables[0].Columns["标题"].ColumnName;
df2.DataTextField = ds.Tables[0].Columns["作者"].ColumnName;
bd1.DataField = ds.Tables[0].Columns["昵称"].ColumnName;
bd2.DataField = ds.Tables[0].Columns["最近回复"].ColumnName; df1.DataNavigateUrlFields = new string[] { ds.Tables[0].Columns["TID"].ColumnName };
df1.NavigateUrl = "~/ShowTopic.aspx?top_id={0}" + "&grp_id=" + GroupID.ToString();
df1.DataNavigateUrlFormatString = "~/ShowTopic.aspx?top_id={0}" + "&grp_id=" + GroupID.ToString(); df2.DataNavigateUrlFields = new string[] { ds.Tables[0].Columns["作者"].ColumnName };
df2.NavigateUrl = "~/UserInfo.aspx?uid={0}";
df2.DataNavigateUrlFormatString = "~/UserInfo.aspx?uid={0}"; this.opertop1.Columns.Add(df1);
this.opertop1.Columns.Add(df2);
this.opertop1.Columns.Add(bd1);
this.opertop1.Columns.Add(bd2); this.opertop1.DataBind();
这是我以前写的,同样可以
//这里如何让GridView1.Columns[1].Visible = false;
GridView1.Columns[2].Visible = false;
GridView1.DataBind();???
---------------------------------------------------------------
你是不是想把GridView中的某些列给隐藏掉?
你那样是隐藏不掉的
你可以在GridView的行绑定事件中处理
在每一行绑定后,找到需要隐藏的那个字段,把那个字段隐藏就可以
//这里如何让GridView1.Columns[1].Visible = false;
GridView1.DataBind();
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
//GridView1.Columns[1].Visible = false;
//这样子也不行哦。有办法吗?
//ds数据列不时固定的,但前3列都是一样的,要隐藏掉。如何做啊?
}
GridView1_RowCreated