Giả sử bạn thiết kế 1 DataList để liệt kê sản phẩm lên trang web và thiết kế mỗi sản phẩm có nút xóa để xóa chúng ra khỏi Cơ sở dữ liệu.
Vậy làm cách nào để nhận Mã số Sản phẩm trong code behind của C#
Giải quyết:
Trong Code Behind, để nhận tham số, ta làm cách sao:
Nếu bạn truyền nhiều tham số thì sao?
Giải quyết:
Trang .aspx
Vậy làm cách nào để nhận Mã số Sản phẩm trong code behind của C#
Giải quyết:
<asp:Button ID="btnXoa" runat="server" Text="Xóa" CssClass="button orange" OnClientClick='<%# "return XacNhan(" + Eval("MA_CD_DVD").ToString() + ");" %>' Height="27px" ToolTip="Xóa sản phẩm" OnClick="XoaSp_Click" CommandArgument='<%# Eval("MA_CD_DVD") %>' />Bạn chú ý dòng CommandArgument, nó dùng để truyền tham số đó.
Trong Code Behind, để nhận tham số, ta làm cách sao:
protected void XoaSp_Click(object sender, EventArgs e) { Button btn = (Button) sender; MessageBox.Show(btn.CommandArgument); }
Nếu bạn truyền nhiều tham số thì sao?
Giải quyết:
Trang .aspx
<asp:Button runat="server" CommandArgument='<%#string.Format("{0}:{1}",Eval("SACSRFNo"),Eval("SACItemNo"))%>' ID="Button" onclick="Button1_Click"/>Trang .cs
protected void Button1_Click(object sender, CommandEventArgs e) { string[] numbers = e.CommandArgument.ToString().Split(':'); }Cách 3:
<Button ID="DeleteButton" runat="server" CommandName="delete" Text="Delete" CommandArgument='<%#string.Format("{0}:{1}",Eval("SACSRFNo"),Eval("SACItemNo"))%>'/>Trong trang .cs, bạn tạo sự kiện chú ý sửa CommandEventArgs thành DataListCommandEventArgs
protected void Datalist1_DeleteCommand(object source, DataListCommandEventArgs e) { string res = e.CommandArgument.ToString(); string delimStr = ":"; char[] delimiter = delimStr.ToCharArray(); string[] vals = res.Split(delimiter); string STRSRFNo = vals[0].ToString(); string STRItemNo = vals[1].ToString(); SqlDataSource1.DeleteParameters["SACSRFNo"].DefaultValue = STRSRFNo.ToString(); SqlDataSource1.DeleteParameters["SACItemNo"].DefaultValue = STRItemNo.ToString(); SqlDataSource1.Delete(); DataList1.DataBind(); }
Cách 2 và 3 chưa kiểm nghiệm thành công
Trả lờiXóa