这个哇,你在加一列,这一列是按钮,俺们显示名称就为选择,然后按钮的commandName值设置为selected,
dataKeyNames 设置成你的数据主键,然后在gridview的 Rowcommand事件里面通过 eCommandArgument获得主键值,然后数据库取数据
另一种就是启用选择行按钮(面板设置CommandField中),直接SelectedIndexChanged中去取值
如果是主键,你可以到GridView里面去设定成如:
DataKeyNames="id"
<asp:GridView ID="gdvUserInfo" runat="server" AutoGenerateColumns="False" DataKeyNames="id">
获取的时候:
/// <summary>
/// 删除信息事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void gdvUserInfo_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
string id =gdvUserInfoDataKeys[eRowIndex]ValueToString();
if (infoDeleteUserInfoById(id) > 0)
{
thislblMessageText = "删除成功!";
LoadInfo();
}
else
{
thislblMessageText = "删除失败!";
LoadInfo();
}
}
/// <summary>
/// 编辑事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void gdvUserInfo_RowEditing(object sender, GridViewEditEventArgs e)
{
gdvUserInfoEditIndex = eNewEditIndex;
LoadInfo();
}
/// <summary>
/// 取消编辑事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void gdvUserInfo_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
gdvUserInfoEditIndex = -1;
LoadInfo();
}
/// <summary>
/// 更新事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void gdvUserInfo_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string userId = gdvUserInfoDataKeys[eRowIndex]ValueToString();
TextBox txtUserId = (TextBox)gdvUserInfoRows[eRowIndex]Cells[0]FindControl("txtUserId");
TextBox txtUserName = (TextBox)gdvUserInfoRows[eRowIndex]Cells[0]FindControl("txtUserName");
TextBox txtPassWord = (TextBox)gdvUserInfoRows[eRowIndex]Cells[0]FindControl("txtPassWord");
if (txtUserName != null && txtPassWord != null)
{
try
{
UserInfo user = infoGetUserInfoById(userId);
userUserName = txtUserNameTextToString();
userPassword = txtPassWordTextToString();
if (infoModifyUserInfo(user) > 0)
{
thislblMessageText = "修改成功!";
gdvUserInfoEditIndex = -1;
LoadInfo();
}
else
{
thislblMessageText = "修改失败!";
gdvUserInfoEditIndex = -1;
LoadInfo();
}
}
catch (Exception)
{
thislblMessageText = "修改失败!";
gdvUserInfoEditIndex = -1;
LoadInfo();
}
}
}
/// <summary>
///
/// 光棒事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void gdvUserInfo_RowDataBound(object sender, GridViewRowEventArgs e)
{
for (int i = 0; i < gdvUserInfoRowsCount; i++)
{
if (gdvUserInfoRows[i]RowType == DataControlRowTypeDataRow)
{
gdvUserInfoRows[i]AttributesAdd("onmouseover", "c=thisstylebackgroundColor;thisstylebackgroundColor='#9cf'");
gdvUserInfoRows[i]AttributesAdd("onmouseout", "thisstylebackgroundColor=c");
}
}
}
我给你把这两个人的放在一起(才全面):
1,gridview 中添加属性DataKeyNames="id",此处的id为你模板列中控件绑定的字段,页面传值时可以获取gridview的DataKeys的值,把这个值通过链接地址传过去 ;
2,GridView有这个事件是必须的GridView1_RowCommand
if (eCommandName == "Edit") //该内容就是要放在这个事件下面
{
ResponseRedirect("AdminEditNewsaspxInfoID=" + eCommandArgumentToString()); //这句的意思是,指定需要跳转的页面,同时将Id带过去,ID即后面的eCommandArgumentToString();而InfoID 是你自定义的,可以是其他的自定义单词或是什么的;
}
3,在你需要显示数据的页面(就是另一个页面)取ID的值,方法如下:
string Id=ResquestQuerystring["Id"]Sting();
这句的意思:ResquestQuerystring["Id"]Sting();用法记住就好,至于为什么,找百度大叔;
4,我扯完了,不知你看会没
有很多种方式,因为gridview已经读出数据库的数据,所以我们只需要获取gridview中的数据即可,不用再连数据库了!
1启用选择按钮。
2datakeysName中填入主键字段名。
3双击GRIDVIEW控件
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
TextBox1Text=GridView1SelectedRowCells[0]Text;//所选行的第一列的内容(注意:gridview中按钮所占的列,也要算到列数中)
TextBox2Text = GridView1SelectedRowCells[1]Text;//所选行的第二列的内容
//thisTextBox3Text=GridView1SelectedValueToString();//获取这行的主键数据,只要主键数据获得了,想怎样怎样!
}
用循环,这是两种情况,两个例子,你可以仿照着改
for (int i = 0; i < gridView1RowsCount; i++)
{
string strC = ((TextBox)gridView1Rows[i]Cells[4]FindControl("txtCount"))Text;
pid = ((HiddenField)gridView1Rows[i]FindControl("hiddenFiled1"))Value;
}
获取GridView里某行某列的值示例
//GridView设置
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False"
CellPadding="4" Font-Size="9pt" ForeColor="#333333" GridLines="None"
Width="500px" OnRowDeleting="GridView1_RowDeleting"
OnPageIndexChanging="GridView1_PageIndexChanging"
OnRowDataBound="GridView1_RowDataBound" PageSize="6" Height="1px">
<FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="#E3EAEB" />
<Columns>//codegonet/tags/11/1/
<asp:BoundField DataField="ST_n_id" HeaderText="文章ID" />
<asp:BoundField DataField="ST_n_title" HeaderText="文章主题" />
<asp:BoundField DataField="ST_n_hit" HeaderText="人气指数" />
<asp:BoundField DataField="ST_n_re" HeaderText="评论" />
<asp:HyperLinkField DataNavigateUrlFields="ST_n_id" DataNavigateUrlFormatString="ViewContentaspxid={0}"
HeaderText="查看信息" Text="查看信息" />
<asp:CommandField HeaderText="删除" ShowDeleteButton="True" />
<asp:TemplateField HeaderText="选择">
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" Font-Size="9pt" Width="9px" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<SelectedRowStyle BackColor="#C5BBAF" ForeColor="#333333" Font-Bold="True" />
<PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" />
<HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#7C6F57" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
//加载数据库数据
SqlData da = new SqlData();
private static string ID;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
/判断是否登录/
ST_check_Login();
}
//定义一个查询用户信息的SQL语句
string sqlstr = "select from tb_Blog where UserName='" + Session["UserName"] + "'";
//调用公共类中的GetDataSet方法执行SQL语句,并返回DataSet类型的数据集
DataSet mydataset = daGetDataSet(sqlstr, "tb_Blog");
//创建数据表的视图
DataRowView rowview1 = mydatasetTables["tb_Blog"]DefaultView[0];
//获取注册博客的编号
ID = rowview1["BlogID"]ToString();
//调用自定义绑定方法绑定数据
ST_Article_Bind();
}
//绑定数据库显示数据
public void ST_Article_Bind()
{
//根据获取的用户ID查询其所有文章
string sqlstr = "select from ST_news where BlogID='" + ID + "'";
//调用公共类中的ExceDS方法,返回一个DataSet类型的数据集,并作为GridView控件的数据源
GridView1DataSource = daExceDS(sqlstr);
//获取GridView控件中的主键字段
GridView1DataKeyNames = new string[] { "ST_n_id" };
//从数据库中绑定数据到列表控件中
GridView1DataBind();
}
//查看某行某列信息跳转ViewContentaspx
<asp:Label ID="labSubject" runat="server" Width="316px" Font-Size="9pt" ></asp:Label>//显示主题
<asp:TextBox ID="txtContent" runat="server" Font-Size="9pt" Height="257px" TextMode="MultiLine"
Width="405px"></asp:TextBox>//显示内容
//加载绑定数据库内容显示数据
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
try
{
string str;
string str2 = PageRequest["id"]ToString();
//此处用来实现将数据绑定到前台
SqlConnection mycon = new SqlConnection(ConfigurationManagerAppSettings["conStr"]);
myconOpen();
SqlDataAdapter myada = new SqlDataAdapter("select from ST_news where ST_n_id='" + str2 + "'", mycon);
DataSet ds = new DataSet();
myadaFill(ds, "ST_news");
//创建DataRowView对象的一个实例
DataRowView rowview = dsTables["ST_news"]DefaultView[0];
//将文章主题读取到labSubject文本框中
thislabSubjectText = rowview["ST_n_title"]ToString();
//将文章内容读取到txtContent文本框中
thistxtContentText = rowview["ST_n_content"]ToString();
myconClose();
}
catch (Exception ex)
{
ResponseWrite(exMessage);
}
}
}
GridView1Rows[eNewSelectedIndex]Cells[4]Text
简言之
设置GridView某一列的visable=false之后会影响到数据绑定 并且无法取到数据 一般情况下 我们需要隐藏的是id列
解决方案:
在后台数据绑定时候指定
this Gridview DataKeyNames=new string[]{ id };
或者在属性编辑器里面编辑DataKeyNames:id 当然如果出现两列需要隐藏 并且需要取值 那么可以在DataKeyNames中用 隔开每个字段
接下来是取数据
如果只有一个关键字 也就是DataKeyNames只有一个值的话 那么可以使用
this Gridview DataKeys[e RowIndex] value ToString();
这种方式是取当前行中的DataKeyNames中的索引为 的关键字的值 也就是第一个关键字的值 当然只有一个关键字的话 也就无所谓了
也可以使用
this GridView DataKeys[e RowIndex][ id ] ToString();
如果有多个关键字 那么只能使用后面这种方式
lishixinzhi/Article/program/net/201311/12444
以上就是关于点击gridview获取当前行数据,并把数据赋值给Lable的text全部的内容,包括:点击gridview获取当前行数据,并把数据赋值给Lable的text、如何获取Gridview中编辑字段的值、asp.net怎么将gridview模版中控件的值给另一个页面等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)