10/10/2018, 09:52

(ASP.NET) - Xin giúp đỡ về việc lưu giữ dữ liệu khi chuyển trang ?

Xin chào các bạn !

Hiện mình gặp 1 vấn đề như thế này mong các bạn giúp đỡ mình với :

Mình có 1 Dropdownlist trong 1 trang Master của ASP.NET

Khi mình chuyển từ trang này sang trang khác, thì cái dropdownlist của mình cũng trở về mặc định. Mình muốn sau khi chuyển trang, nó vẫn lưu giữ giá trị đã chọn thì phải làm sao ?

Mong được sự trợ giúp của các bạn !

Xin cảm ơn !
bachnga viết 11:56 ngày 10/10/2018
Có khá nhiều cách để làm cái này.
Có lẽ lưu giá trị đã chọn vào Session là cách mà nhiều người sử dụng.
kudomt viết 11:56 ngày 10/10/2018
Bạn có thể hướng dẫn cụ thể hoặc 1 ví dụ code cụ thể giúp mình được ko ạ /.
Mình cũng làm bằng session nhưng vẫn ko được !

Xin cảm ơn !
Khoe Sắc viết 12:01 ngày 10/10/2018
1. Xử lý event on change của dropdownlist, khi change thì lưu biến session với giá trị selected của dropdownlist

2. Trong PageLoad, thêm dòng code kiểm tra session này có khác null hay không, nếu khác thì set giá trị seletedvalue của dropdownlist bằng giá trị của biến session.

3. Nói rõ vậy mà không làm dc thì nhảy lầu đi là vừa
bachnga viết 12:05 ngày 10/10/2018
Trang t1.aspx thiết kế như vầy:
Code:
    <form id="form1" runat="server">
    <div>
    
        <asp:DropDownList ID="DropDownList1" runat="server">
            <asp:ListItem>Chanh</asp:ListItem>
            <asp:ListItem>Mận</asp:ListItem>
            <asp:ListItem>Đào</asp:ListItem>
            <asp:ListItem>Cam</asp:ListItem>
        </asp:DropDownList>
        <asp:Button ID="Button1" runat="server" Text="Chuyển trang" />
    
    </div>
    </form>
Xử lý sự kiện click button Button1 và PageLoad như sau:
Code:
    protected void Page_Load(object sender, EventArgs e)
    {
        string qua = "";
        if (!Session.IsNewSession)
        {
            if (Session["qua"] != null)
            {
                qua = (string)Session["qua"];
                DropDownList1.SelectedValue = qua;
            }
        }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Session.Add("qua", DropDownList1.SelectedValue);
        Response.Redirect("t2.aspx");
    }
Tùy theo ý đồ bạn có thể viết code xử lý cho sự kiện nào (có thể cho sự kiện SelectedIndexChanged của DropDownList như bạn Khoe Sắc ở trên)

@Khoe Sắc: tôi nghĩ bạn nên nhẹ lời.
kudomt viết 11:58 ngày 10/10/2018
@Khoe Sắc : Ko lẽ giờ em đi nhảy lầu chứ, vẫn chưa làm được !
@bachnga : Em cũng làm y nhw vậy, nhưng khi nó chuyển qua trang khác là nó bị đổi giá trị của dropdownlist liền à !

Nếu có thể anh cho em xin nick yahoo được ko ạ ?

Xin cảm ơn các anh !

[=========> Bổ sung bài viết <=========]

Đây là code của em :

protected void Page_Load(object sender, EventArgs e)


{

//DDSelectnghe.Enabled = false;
string nghe = "";
if (!Session.IsNewSession)
{
if (Session["nghe"] != null)
{
nghe = (string)Session["nghe"];
DDSelectnghe.SelectedValue = nghe;
}
}


}

protected void DDSelectnghe_change(object sender, EventArgs e)
{
//Session["nghe"] = DDSelectnghe.SelectedValue;
Session.Add("nghe", DDSelectnghe.SelectedValue);
DDSelectnghe.Enabled = false;
Response.Redirect("?trang=gioithieu");
}
Khoe Sắc viết 12:06 ngày 10/10/2018
trong cái PageLoad

if (!IsPostBack) {
if (Session["nghe"]!= null) {
DropDownList1.SelectedValue = Session["nghe"].ToString();
}
}

Trong cái dropdownlist hoặc button event

Session["nghe"] = DDSelectnghe.SelectedValue;
kudomt viết 11:57 ngày 10/10/2018
Cảm ơn 2 anh rất nhiều, em đã làm được rồi
Bài liên quan
0