使用CommandArgument查找数据表行的数据库表record_id

在处理最近的项目时,我发现CommandArgument属性可以有多有用。 我需要确定数据网格中显示的行的record_id。 当用户单击“编辑图像按钮”时,我需要将用户重定向到“编辑”页面,该页面上的数据将用数据库中的数据预先填充。 我尝试了几项都没有成功,然后发现CommandArgument属性可以用于此任务。

这是我的数据网格

[HTML] <asp:datagrid id =“ dgReorgs” runat =“ server” OnSortCommand =“ dgReorgs_SortCommand” OnPageIndexChanged =“ dgReorgs_PageIndexChanged”

PagerStyle-Horizo​​ntalAlign =“ Center” PagerStyle-Mode =“ NumericPages” BorderWidth =“ 0px” CellSpacing =“ 1” CellPadding =“ 2” AllowSorting =“ True” ShowFooter =“ True” AutoGenerateColumns =“ False” PageSize =“ 20”

AllowPaging =“ True” OnItemCommand =“ dgReorgs_ItemCommand” PagerStyle-CssClass =“ PagingLink”>

<栏目>

<asp:TemplateColumn>

<HeaderStyle Horizo​​ntalAlign =“ Center”> </ HeaderStyle>

<ItemStyle Horizo​​ntalAlign =“ Center”> </ ItemStyle>

<HeaderTemplate>

<asp:ImageButton ID =“ ibtnAdd” Runat =“服务器” ImageUrl =“ images / Add.gif” OnClick =“ ibtnAdd_Click” Visible =“ False”> </ asp:ImageButton>

</ HeaderTemplate>

<ItemTemplate>

<asp:ImageButton ID =“ ibtnEdit” Visible =“ False” Runat =“ server” ImageUrl =“ images / Edit.gif” CommandArgument ='<%#DataBinder.Eval(Container,“ DataItem.record_id”)%>'CommandName =“编辑”>

</ asp:ImageButton>&nbsp;

</ ItemTemplate>

</ asp:TemplateColumn>

<asp:BoundColumn DataField =“ offer_posting_date” SortExpression =“ offer_posting_date” HeaderText =“提供发布日期”

DataFormatString =“ {0:MM / dd / yyyy}” HeaderStyle-Font-Size =“ 10”>

<HeaderStyle Horizo​​ntalAlign =“ Center” ForeColor =“ White” BackColor =“ Navy”> </ HeaderStyle>

<ItemStyle Horizo​​ntalAlign =“ Center” BackColor =“ White”> </ ItemStyle>

</ asp:BoundColumn>

<asp:BoundColumn DataField =“ symbol” SortExpression =“ symbol” HeaderText =“ Symbol” HeaderStyle-Font-Size =“ 10”>

<HeaderStyle Horizo​​ntalAlign =“ Center” ForeColor =“ White” BackColor =“ Navy”> </ HeaderStyle>

<ItemStyle Horizo​​ntalAlign =“ Center” BackColor =“ White”> </ ItemStyle>

</ asp:BoundColumn>

<asp:BoundColumn DataField =“ offer_expiration_date” SortExpression =“ offer_expiration_date” HeaderText =“到期日期”

DataFormatString =“ {0:MM / dd / yyyy}” HeaderStyle-Font-Size =“ 10”>

<HeaderStyle Horizo​​ntalAlign =“ Center” ForeColor =“ White” BackColor =“ Navy”> </ HeaderStyle>

<ItemStyle Horizo​​ntalAlign =“ Center” BackColor =“ White”> </ ItemStyle>

</ asp:BoundColumn>

<asp:BoundColumn DataField =“ notes” SortExpression =“ notes” HeaderText =“ Notes” HeaderStyle-Font-Size =“ 10”>

<HeaderStyle Horizo​​ntalAlign =“ Center” ForeColor =“ White” BackColor =“ Navy”> </ HeaderStyle>

<ItemStyle Width =“ 180px” BackColor =“ White” Wrap =“ True”> </ ItemStyle>

</ asp:BoundColumn>

</ Columns>

<PagerStyle Horizo​​ntalAlign =“ Center” Mode =“ NumericPages”> </ PagerStyle>

</ asp:datagrid> [/ HTML]

以下语句是键CommandArgument ='<%#DataBinder.Eval(Container,“ DataItem.record_id”)%>'(请参见代码中的第12行)。 注意:如果您的数据网格的数据源不包含record_id列,则此语句将不起作用。

现在在代码后面。

我使用datagrid的ItemCommand事件来获取已选择进行编辑的行的record_id。 在这种情况下,我必须检查该项目是否是datagrid标头部分的一部分,或者它是否是datagrid寻呼机部分的一部分。 如果不是,那么我可以将页面重定向到“编辑”页面,并使用e.CommandArgument将record_id作为查询字符串附加。

public void dgReorgs_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if(e.Item.ItemType != ListItemType.Header && e.Item.ItemType != ListItemType.Pager)
{
if(e.CommandName == "Edit")
{
Response.Redirect("EditReorg.aspx?value=" + e.CommandArgument);
}
}
}
然后,在“编辑”页面的page_load事件中,我将调用一个查询,该查询将为我获取该行的数据,然后使用数据预填充页面上的控件。

我希望这段代码可以帮助某些人了解如何使用CommandArgument属性。

内森

From: https://bytes.com/topic/net/insights/660804-using-commandargument-find-database-table-record_id-datagrid-row

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值