c#
  • asp.net
  • sql
  • datalist
  • 2012-08-04 47 views 1 likes 
    1

    我有一个绑定到一个数据库,在那里,现在的标签是改变一个链接按钮传递在asp.net数据列表值(闭)

    <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> 
    

    对于这种情况,我想的链接按钮,一个DataList启动了一个新页面,在该页面中,Eval(“username”)值被传递到新页面。

    我在考虑使用会话传递诸如....

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

    ,这样,我要去使用会话来传递变量可以被操纵。

    但我的问题是我不知道如何分配文本=” <%#的eval(‘用户名’)%的可变any_variable> .....

    ~~对所分配的值变量取决于绑定到数据库的数据绑定的文本....例如...第一个linkbutton文本是用户名1,第二个是用户名2,依据我的SQL选择命令.....

    我需要选定的Text ='<%#Eval(“username”)%>,以便我可以操纵信息以显示另一个基于该值的数据绑定控件。

    任何人都可以帮助我吗?

    回答

    5

    可以使用onitemcommand DataList控件的= “DataList1_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"); 
        } 
    } 
    
    +0

    嗨Naresh ....这个想法似乎工作....谢谢....真的很好分享和讨论与你们..... – toneinacone 2012-08-04 13:01:38

    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; 
    } 
    
    +0

    感谢您的快速答复瓦卡.... IM还是输了......价值现在分配给1k是吗? .....现在的数据类型是由哪些数据组成的? ....在此先感谢.. – toneinacone 2012-08-04 12:34:05

    +0

    谢谢Waqar ...它似乎工作....很好的分享和与你们讨论......为你和其他人祈祷所有的好东西..... tq再次。 .. – toneinacone 2012-08-04 13:04:19

    +0

    @toneinacone欢迎您。 lk获取你的datalist中存在的linkbutton的引用。并记住将你的答案标记为最能帮助你的人。 – 2012-08-04 13:38:35

    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和命令参数补充。现在您可以使用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}")' />

    我希望这会帮助你。

    +0

    嗨Prashant ....感谢这个想法...但字符串doest似乎与e对象一起工作....但如果我们直接分配给会话它似乎工作....像... 。Session [“Picked_username_from_datalist”] = e.CommandArgument; – toneinacone 2012-08-04 13:00:05

    相关问题