在asp.net中传递数据列表值(已关闭)

时间:2012-08-04 12:16:06

标签: c# asp.net sql datalist

我有一个绑定到数据库的数据列表,现在标签已更改为链接按钮

<asp:DataList ID="DataList1" runat="server" DataSourceID="SqlDataSource1" >
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" Text='<%# Eval("username") %>'>
</asp:LinkButton>
.....some other datalist item 
</ItemTemplate>
</asp:DataList>

对于这种情况,我希望链接按钮启动一个新页面,其中Eval(“用户名”)值被传递到新页面。

我正在考虑使用诸如....之类的会话传递它。

string any_variable ;
session["Picked_username_from_datalist"] = any_variable ;
response.redirect("newpage.aspx");

这样我可以操纵我将使用会话传递的变量。

但我的问题是我不知道如何分配Text ='&lt;%#Eval(“username”)%&gt;到变量any_variable .....

~~变量的赋值取决于绑定到数据库的数据绑定文本....例如......第一个链接按钮文本是username1,第二个是username2,依此类推SQL select命令.....

我需要选择的Text ='&lt;%#Eval(“username”)%&gt;这样我就可以操纵信息,根据值显示另一个数据绑定控件。

有人能帮助我吗?

3 个答案:

答案 0 :(得分:5)

您可以使用DataList的onitemcommand =“DataList ItemCommand”事件

<asp:DataList ID="DataList1" runat="server" DataSourceID="SqlDataSource1" onitemcommand="DataList1_ItemCommand" >
        <ItemTemplate>
        <asp:LinkButton ID="LinkButton1" runat="server" Text='<%# Eval("username") %>' CommandArgument='<%# Eval("username") %>' CommandName="Redirect">
        </asp:LinkButton>
        .....some other datalist item 
        </ItemTemplate>
        </asp:DataList>

服务器端代码

protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
{
    if (e.CommandName == "Redirect")
    {
         Session["Picked_username_from_datalist"] = e.CommandArgument;
         Response.Redirect("newpage.aspx");
    }
}

答案 1 :(得分:0)

我认为你必须使用项目约束事件

void Item_Bound(Object sender, DataListItemEventArgs e)
{
   // here you can find the value as
       LinkButton lk= (LinkButton)e.Item.FindControl("LinkButton1");
    session["Picked_username_from_datalist"] = lk.Text;
}

答案 2 :(得分:0)

很简单:


 <asp:DataList ID="DataList1" runat="server" DataSourceID="SqlDataSource1" >
     <ItemTemplate>
     <asp:LinkButton ID="LinkButton1" runat="server" Text='<%# Eval("username") %>' CommandName="Assign" CommandArgument='<%# Eval("username") %>'>
     </asp:LinkButton>
    .....some other datalist item 
     </ItemTemplate>
     </asp:DataList>

请注意添加了新属性CommandName和Command Argument。现在,您可以使用ItemCommand做任何您想做的事。

void Item_Command(Object sender, DataListCommandEventArgs e) 
      {
         if(e.CommandName == "Assign") {
             string userName = e.CommandArgument;
         }

      }

另一种简单的方法是使用超链接代替链接按钮。

<asp:hyperlink id="link1" href='<%#Eval("username","/yourpage.aspx?userName={0}")' />

我希望这会对你有所帮助。