一个Gridview.显示一组数据列表
一个panel.
GridView中有一个选择按扭
问题1:怎样把这个选择按扭设置成BUTTON模式?(现在是HyperLink)
问题2:当点击BUTTON的时候。怎样才能取得选择的这一行的参数值?是否是取主键?
如果取得主键以后。我要将这个主键数值显示在西面panel的TEXT1中。应该怎么做?
一个panel.
GridView中有一个选择按扭
问题1:怎样把这个选择按扭设置成BUTTON模式?(现在是HyperLink)
问题2:当点击BUTTON的时候。怎样才能取得选择的这一行的参数值?是否是取主键?
如果取得主键以后。我要将这个主键数值显示在西面panel的TEXT1中。应该怎么做?
<Columns>
<asp:CommandField ButtonType="Button" ShowSelectButton="True" />
</Columns>
</asp:GridView>
{
TextBox1.Text = GridView1.DataKeys[e.NewSelectedIndex].Value.ToString();
}
-------------------------------
直接换成button就行了啊
假设你绑定的是DATASET,主键字段是id.
在gridview中加1个模板列,模板列放1个BUTTON,社会只button 的CommandName="myEdit" CommandArgument='Eval("id")'然后注册gridview的RowCommand事件,在gridview的RowCommand中写下面的代码:if(e.CommandName="myEdit")
{
// 取你点击行的主键值
string id = e.CommandArgument;
// 赋值给panel的TEXT1中
TEXT1.Text = id;
}
使用模板列
问题2:当点击BUTTON的时候。怎样才能取得选择的这一行的参数值?是否是取主键?
如果取得主键以后。我要将这个主键数值显示在西面panel的TEXT1中。应该怎么做?
设置
GridView1.DataKeyNames = "主键字段名";
设置Button 的CommandName="select";
在GridView1的SelectedIndexChanged事件中给panel的TEXT1赋值
GridView1.SelectedDataKey[0] //取主键字段值
<Columns>
<asp:CommandField ButtonType="Button" ShowSelectButton="True" />
</Columns>
</asp:GridView>或者建立一个模板列放一个Button然后设置Button的CommandName="Select"
<Columns>
<asp:CommandField ButtonType="Button" ShowSelectButton="True" />
</Columns>
</asp:GridView>
得到选中行的主键数值,前提是GridView有设置过DataKeyNames="主键字段" protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
{
TextBox1.Text = GridView1.DataKeys[e.NewSelectedIndex].Value.ToString();
}
<asp:GridView ID="GridView3" runat="server" BackColor="White" BorderColor="#3366CC"
BorderStyle="None" BorderWidth="1px" CellPadding="1" Font-Size="10pt" Height="73px"
Width="379px" AutoGenerateColumns=False OnSelectedIndexChanged="GridView3_SelectedIndexChanged" >
<FooterStyle BackColor="#99CCCC" ForeColor="#003399" />
<RowStyle BackColor="White" ForeColor="#003399" />
<SelectedRowStyle BackColor="#009999" Font-Bold="True" ForeColor="#CCFF99" />
<PagerStyle BackColor="#99CCCC" ForeColor="#003399" HorizontalAlign="Left" />
<HeaderStyle BackColor="#003399" Font-Bold="True" ForeColor="#CCCCFF" />
<Columns>
<asp:BoundField DataField="cartid" HeaderText="订单编号" />
<asp:BoundField DataField="inusername" HeaderText="收货人姓名" />
<asp:BoundField DataField="loginname" HeaderText="下单人" />
<asp:BoundField DataField="addtime" HeaderText="下单时间" />
<asp:CommandField ButtonType=Button HeaderText="查看详单" ShowSelectButton="True" />
</Columns> </asp:GridView>
绑定:
sql = "select * from scb_cart where loginname='" + Session["login_name"] + "'";
SqlDataAdapter myda = new SqlDataAdapter(sql, MyConn);
DataSet myds = new DataSet();
MyConn.Open();
myda.Fill(myds, "gw");
GridView3.DataSource = myds;
GridView3.DataKeyNames = new string[] { "id" };//主键
GridView3.DataBind();
选择:
protected void GridView3_SelectedIndexChanged(object sender, EventArgs e)
{
Lbcartitem.Text = GridView1.DataKeys[e.NewSelectedIndex].Value.ToString();
}出错:“System.EventArgs”并不包含“NewSelectedIndex”的定义
BorderStyle="None" BorderWidth="1px" CellPadding="1" Font-Size="10pt" Height="73px"
Width="379px" AutoGenerateColumns=False OnSelectedIndexChanged="GridView3_SelectedIndexChanged" onselectedindexchanging="GridView3_SelectedIndexChanging"> void GridView3_SelectedIndexChanging(Object sender, GridViewSelectEventArgs e)
{
Lbcartitem.Text = GridView1.DataKeys[e.NewSelectedIndex].Value.ToString();
}
protected void GridView3_SelectedIndexChanged(object sender, EventArgs e)
{
GridViewRow row = GridView3.SelectedRow;
Lbcartitem.Text = GridView3.DataKeys[GridViewRow.DataItemIndex].Value.ToString();
}PS: 你的Lbcartitem.Text = GridView1.DataKeys[e.NewSelectedIndex].Value.ToString();
应该是GridView3.DataKeys而不是GridView1.DataKeys