从Repeater asp.net获取数据库值

时间:2013-05-07 20:55:22

标签: c# asp.net

我正在使用Repeater从数据库中获取项目。

我将每个项目放入Web用户控制页面,使用以下代码:

<%#DataBinder.Eval(Container.DataItem, "XXXX")%>

XXXX =数据库中的属性,例如:用户名。

在Web用户控制页面的.cs文件中,我想从每个重复的元素中获取ID(也在数据库中),任何线索我怎么能这样做?

例如:

<%#DataBinder.Eval(Container.DataItem, "Username")%>显示数据库中每个人的用户名。在.cs文件中,我想获取该用户名的ID。因此,当在重复的用户名旁边点击一个按钮时,我可以使用这样的SQL查询:

UPDATE Table SET Username = "Mike" WHERE ID = '" + #### + "'

我不知道该怎么写代替####。

这:#### =重复用户名中点击按钮的ID。

提前致谢!

2 个答案:

答案 0 :(得分:1)

使用Repeater,一个好方法是使用命令按钮。

在.aspx中,在转发器ItemTemplate中定义一个命令按钮:

<asp:Repeater ID="repUsers" runat="server" OnItemCommand="repUsers_ItemCommand">
    <ItemTemplate>
        <asp:Button runat="server" CommandName="select" CommandArgument='<%#Eval("Id")%>' Text="Select" />
        <span><%#Eval("Username")%></span>
        <br />
    </ItemTemplate>
</asp:Repeater>

在你的.cs中,捕获命令按钮点击:

protected void repUsers_ItemCommand(object source, RepeaterCommandEventArgs e)
{
    if (e.CommandName == "select")
    {
        int userId = int.Parse(e.CommandArgument.ToString());
        // do your db update here...
    }
}

答案 1 :(得分:0)

在您的aspx页面中执行以下操作:

<asp:Repeater OnItemCommand="ButtonCommandEvent" ID="myRepeater" runat="server">

<ItemTemplate>
...
<asp:HiddenField ID="recordId" runat="server" value='<%# Eval("id") %>' />
...
</ItemTemplate>

然后在您的代码中,您可以连接按钮以执行以下操作:

void ButtonCommandEvent(Object obj, RepeaterCommandEventArgs e)
{
    var temp = e.Item.FindControl("recordId") as HiddenField;
    //use the value in temp to insert into your database
    //UPDATE Table SET Username = "Mike" WHERE ID = temp
}

只要您在每个重复项目旁边有一个按钮,这将有效。