如题,很简单,本来是想让gridview自动生成了一个buttonfild-确定按钮,点按钮取出gridview的数据。可是,现在我每次点按钮,提取出来的gridview.columns.count总是为0,里面的数据是空。谁能帮着看看,谢谢了!!public partial class insert2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string sql = "select * from wbin.azs12 where id=10";
Database myDb = new Database();
DataSet myDs = myDb.GetDataSet(sql);
myGv2.DataKeyNames = new string[] { "id" };
myGv2.DataSource = myDs;
myGv2.DataBind();
this.Form.Controls.Add(myGv2);
}
protected void btnClick(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "save_btn") //如果是OpenRow按纽
{
//this.Label1.Text=this.form1.Controls.Count.ToString();
this.Label1.Text = myGv2.Columns.Count.ToString();
}
if (e.CommandName == "cancel_btn")
{ this.Label1.Text = "cancel 成功"; }
}asp的代码
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="onemore" runat="server" OnClick="onemore_Click" Text="多一行" />
<asp:Button ID="save" runat="server" OnClick="save_Click" Text="保存" />
<asp:GridView ID="myGv2" runat="server" DataKeyNames="id" OnRowCommand="btnClick" >
<Columns>
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:Button ID="Button1" runat="server" CausesValidation="false" CommandName="save_btn"
Text="保存" OnClientClick="javascript:return confirm('真的要删除吗?');" />
</ItemTemplate>
</asp:TemplateField>
<asp:ButtonField ButtonType="Button" CommandName="cancel_btn" Text="返回" />
</Columns>
</asp:GridView>
<br />
<asp:Label ID="Label1" runat="server"> </asp:Label> </div>
</form>
</body>
</html>
{
protected void Page_Load(object sender, EventArgs e)
{
string sql = "select * from wbin.azs12 where id=10";
Database myDb = new Database();
DataSet myDs = myDb.GetDataSet(sql);
myGv2.DataKeyNames = new string[] { "id" };
myGv2.DataSource = myDs;
myGv2.DataBind();
this.Form.Controls.Add(myGv2);
}
protected void btnClick(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "save_btn") //如果是OpenRow按纽
{
//this.Label1.Text=this.form1.Controls.Count.ToString();
this.Label1.Text = myGv2.Columns.Count.ToString();
}
if (e.CommandName == "cancel_btn")
{ this.Label1.Text = "cancel 成功"; }
}asp的代码
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="onemore" runat="server" OnClick="onemore_Click" Text="多一行" />
<asp:Button ID="save" runat="server" OnClick="save_Click" Text="保存" />
<asp:GridView ID="myGv2" runat="server" DataKeyNames="id" OnRowCommand="btnClick" >
<Columns>
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:Button ID="Button1" runat="server" CausesValidation="false" CommandName="save_btn"
Text="保存" OnClientClick="javascript:return confirm('真的要删除吗?');" />
</ItemTemplate>
</asp:TemplateField>
<asp:ButtonField ButtonType="Button" CommandName="cancel_btn" Text="返回" />
</Columns>
</asp:GridView>
<br />
<asp:Label ID="Label1" runat="server"> </asp:Label> </div>
</form>
</body>
</html>
GridViewRow gvr = (sender as Button).NamingContainer as GridViewRow;
if (gvr != null)
{
Response.Write(gvr.Cells[2].Text);//输出第三列的值
}
{
//GridView1模板列的Button按钮单击时取该行某列的值 ,Button1是GridView1中的模板列的按钮
GridViewRow gvr = (sender as Button).NamingContainer as GridViewRow;
if (gvr != null)
{
//Response.Write(gvr.Cells[2].Text);//输出第三列的值
Label1.Text = gvr.Cells[2].Text;//输出第三列的值
}
}
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="Button1" CommandArgument='<%#Eval("绑定的字段") %>' runat="server" Text="Button" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Button but = gvInfo.FindControl("控件ID");
string value = but.CommandArgument;
{
Button btn = sender as Button;
this.Label1.Text = btn.Count.ToString();
}
“System.Web.UI.WebControls.Button”并不包含“Count”的定义
控件对象。ext
我正在使用中,这样一定可以取到第三列的值:
protected void Button1_Click(object sender, EventArgs e)
{
//GridView1模板列的Button按钮单击时取该行某列的值 ,Button1是GridView1中的模板列的按钮
GridViewRow gvr = (sender as Button).NamingContainer as GridViewRow;
if (gvr != null)
{
Label1.Text = gvr.Cells[2].Text;//输出第三列的值
}
}