点击gridview获取当前行数据,并把数据赋值给Lable的text

点击gridview获取当前行数据,并把数据赋值给Lable的text,第1张

这个哇,你在加一列,这一列是按钮,俺们显示名称就为选择,然后按钮的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模版中控件的值给另一个页面等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9339385.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存