2010-04-14 46 views
15

Trong ứng dụng của tôi, tôi có một số nút liên kết ở đó nhưng khi tôi nhấp chuột phải vào chúng tôi không thể (họ đang ở chế độ disable) tìm các mục trong menu Open in new tab hoặc Open in new window.thuộc tính nút liên kết để mở trong tab mới?

Làm thế nào để hiển thị những mục menu?

Mã dụ:

<asp:LinkButton id="lbnkVidTtile1" runat="Server" CssClass="bodytext" Text='<%#Eval("newvideotitle") %>' /> 

Trả lời

18

trên Từ docs:

Use the LinkButton control to create a hyperlink-style button on the Web page. The LinkButton control has the same appearance as a HyperLink control, but has the same functionality as a Button control. If you want to link to another Web page when the control is clicked, consider using the HyperLink control.

Vì đây là không thực sự thực hiện một liên kết theo nghĩa tiêu chuẩn, không có Target tài sản trên sự kiểm soát (các HyperLink kiểm soát có một Target) - nó đang cố gắng để thực hiện một PostBack đến máy chủ từ một liên kết văn bản.

Tùy thuộc vào những gì bạn đang cố gắng làm bạn có thể một trong hai:

  1. Sử dụng một điều khiển HyperLink, và thiết lập các Target tài sản
  2. Cung cấp một phương pháp để các OnClientClick property mở ra một cửa sổ mới để địa điểm chính xác .
  3. Trong mã của bạn xử lý PostBack, hãy thêm một số JavaScript để kích hoạt PageLoad sẽ mở ra một cửa sổ mới chính xác.
+0

tôi có thể nhận được rằng trong nút liên kết bởi vì tôi đang đi qua một số giá trị bằng cách sử dụng commandargument, nó không phải là trong hyperling ngay cả bấm vào sự kiện cũng không có cho siêu liên kết. Ông Zhaph- Ben –

0

Khi bất động sản LinkButton Enabled là sai nó chỉ làm cho một siêu liên kết tiêu chuẩn. Khi bạn nhấp chuột phải vào bất kỳ siêu liên kết bị vô hiệu hóa bạn không nhận được tùy chọn để mở trong bất cứ điều gì.

thử

lbnkVidTtile1.Enabled = true; 

Tôi xin lỗi nếu tôi hiểu lầm. Tôi có thể chắc chắn rằng bạn hiểu mục đích của một LinkButton? Nó là để cho sự xuất hiện của một HyperLink nhưng hành vi của một Button. Điều này có nghĩa là nó sẽ có một thẻ neo, nhưng có JavaScript được kết nối để thực hiện PostBack cho trang. Nếu bạn muốn liên kết đến một trang khác, bạn nên sử dụng here để sử dụng điều khiển HyperLink tiêu chuẩn.

+0

Ông Daniel Dyson mã mà bạn đã cho lbnkVidTtile1.Enabled = true; có nằm trong sự kiện nhấp vào nút liên kết không? –

+0

Sự kiện PageLoad trong mã phía sau. Bạn không cần phải làm điều này vì mặc định là đúng. Bạn có thể giải thích cách các nút liên kết đã bị vô hiệu hóa không? –

+0

Ông Daniel Dyson u không hiểu câu hỏi của tôi tôi nghĩ. khi chúng tôi mở bất kỳ trang web nào và có thể có một nút liên kết khi chúng tôi nhấp chuột phải vào nó và chọn 'liên kết mở tab mới' mà tôi cần trong nút liên kết của tôi. trình bày các nút liên kết của tôi không nhận được cái đó (mở liên kết tab mới) –

-4
<asp:LinkButton ID="LinkButton1" runat="server" target="_blank">LinkButton</asp:LinkButton> 

Sử dụng target = "_ blank" vì Nó tạo đánh dấu neo. HTML sau đây được tạo cho mã

<a id="ctl00_ContentPlaceHolder1_LinkButton1" target="_blank" href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$LinkButton1','')">LinkButton</a> 
+2

Hmm, Điều đó làm hiển thị đánh dấu khi bạn đặt, nhưng mở một cửa sổ trống và không thực hiện PostBack, vì vậy hầu như không lý tưởng;) –

+1

không làm việc cho tôi. như tôi đang sử dụng nút liên kết trong Grd xem –

1
  1. LinkButton thực thi thao tác HTTP POST, bạn không thể thay đổi mục tiêu bài đăng tại đây.
  2. Không phải tất cả các trình duyệt đều hỗ trợ đăng biểu mẫu lên cửa sổ mục tiêu mới.
  3. Để có bài đăng, bạn phải thay đổi mục tiêu của "MẪU".
  4. Bạn có thể sử dụng một số giải pháp thay thế mục tiêu POST, bằng cách thay đổi thuộc tính đích của biểu mẫu, nhưng trình duyệt sẽ cảnh báo cho người dùng (IE Does), rằng trang này đang cố đăng dữ liệu trên cửa sổ mới, bạn có muốn để tiếp tục, v.v.

Cố gắng tìm ID của phần tử biểu mẫu của bạn trong aspx được tạo và bạn có thể thay đổi mục tiêu như ...

getElementByID('theForm').target = '_blank' or 'myNewWindow' 
3

Điều này không hoàn hảo, nhưng nó hoạt động.

<asp:LinkButton id="lbnkVidTtile1" runat="Server" 
    CssClass="bodytext" Text='<%# Eval("newvideotitle") %>' 
    OnClientClick="return PostToNewWindow();" /> 

<script type="text/javascript"> 
function PostToNewWindow() 
{ 
    originalTarget = document.forms[0].target; 
    document.forms[0].target='_blank'; 
    window.setTimeout("document.forms[0].target=originalTarget;",300); 
    return true; 
} 
</script> 
+0

Tôi thích giải pháp này bởi vì nó đặt thời gian chờ của thủ đoạn mục tiêu này. Nếu thời gian chờ không được đặt, mọi liên kết được nhấp sau thời điểm này sẽ mở trong cửa sổ mới. – kerbasaurus

14

thử bằng cách thêm sau đây trên sự kiệnClientClick.

OnClientClick="aspnetForm.target ='_blank';"

do đó, nhấp vào nó sẽ gọi hàm Javascript sẽ mở liên kết tương ứng trong tab Tin tức.

<asp:LinkButton id="lbnkVidTtile1" OnClientClick="aspnetForm.target ='_blank';" runat="Server" CssClass="bodytext" Text='<%# Eval("newvideotitle") %>' /> 
0

Nó ném lỗi.

Lỗi thời gian chạy Microsoft JScript: 'aspnetForm' không được xác định

11

Đây là thẻ của bạn.

<asp:LinkButton ID="LinkButton1" runat="server">Open Test Page</asp:LinkButton> 

Đây là mã của bạn trên mã phía sau.

LinkButton1.Attributes.Add("href","../Test.aspx") 
LinkButton1.Attributes.Add("target","_blank") 

Hy vọng điều này sẽ hữu ích cho người khác.

Chỉnh sửa Để thực hiện tương tự với nút liên kết bên trong trường mẫu, hãy sử dụng mã sau.

Sử dụng sự kiện GridView_RowDataBound để tìm nút Liên kết.

Dim LB as LinkButton = e.Row.FindControl("LinkButton1")   
LB.Attributes.Add("href","../Test.aspx") 
LB.Attributes.Add("target","_blank") 
+0

Tôi muốn sử dụng nó trong asp: TemplateField trong GridView. – Kiquenet

+0

Có thể thực hiện được. Thêm LinkButton1 vào trường mẫu của bạn. Sử dụng sự kiện GridView_RowDataBound để tìm nút Liên kết - Dim LB dưới dạng LinkButton = e.Row.FindControl ("LinkButton1") và LB.Attributes.Add ("href", "../ Test.aspx") và LB.Attributes.Add ("target", "_ blank"). –

+0

Đặt nhận xét này làm câu trả lời của bạn thay thế. – Jamil

Các vấn đề liên quan