c#
  • asp.net
  • sql
  • datalist
  • 2012-08-04 125 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

    相關問題