2009-11-30 53 views
6

Tôi có hai hộp văn bản tbxProdAc & txtbxHowMany. Tôi muốn viết một chút mã trong đoạn mã phía sau để khi tôi nhập văn bản vào một văn bản, bất kỳ văn bản nào có thể nằm trong phần còn lại sẽ bị xóa.Thuộc tính.Nhấp vào sự kiện onclick trong mã C# sau

Làm cách nào để đạt được điều này và tôi nên đặt sự kiện nào?

Tôi đã cố gắng sử dụng

txtbxHowMany.Attributes.Add("onclick", "document.getElementById('tbxProdAC').innerText='';");

trong trường hợp tải trang nhưng twithout thành công ... này phải ở trong pre_init?

Khi bạn có thể nói, hãy hoàn thành người mới làm việc tại đây.

Trả lời

7

Trước hết, hãy đảm bảo rằng khi trang đã được tạo mà ID vẫn là "tbxProdAC" nếu đây là điều khiển .Net, ID sẽ bị thay đổi. Trong trường hợp này, bạn có thể sử dụng một lớp.

Hãy thử những điều sau đây, - này sử dụng JQuery - bạn sẽ cần phải bao gồm mà

txtbxHowMany.Attributes.Add("onclick", "$('#tbxProdAC').val('');"); 

Thêm dòng sau vào Head Phần của trang của bạn.

<script type="text/javascript" src="jquery.js"></script> 

Và bạn có thể lấy file jquery.js từ đây: http://docs.jquery.com/Downloading_jQuery#Download_jQuery

Và Tại sao: https://stackoverflow.com/questions/308751/why-use-jquery

+0

Cảm ơn Pino - bằng cách nói "bạn sẽ cần phải bao gồm" bạn có nghĩa là chỉ cần thêm vào thư viện jquery tham khảo trong mã nguồn của tôi hoặc thực sự trong mã phía sau? (xin lỗi cho câu hỏi dày) – MrDean

+1

Tôi đã cập nhật bài đăng chính của mình và bạn không bị "dày" bằng cách hỏi. Tất cả chúng ta đều cần đặt câu hỏi! Tiếp tục hỏi điều gì làm cho bạn tốt hơn. – LiamB

+0

Hmmm ... Tôi phải làm điều gì sai! Tôi đã sử dụng mã được cung cấp, trang được tải lên tốt, tôi đã nhập dữ liệu vào tbxProdAC rồi nhấp vào txtbxHowMany. Điều này đưa ra một lỗi được xác định là "Đối tượng không hỗ trợ thuộc tính hoặc phương pháp này" Tôi phải đi sai ở đâu đó!?! Tôi đặt '... attributes.add ..' trong mã C# của tôi phía sau trong sự kiện tải trang ... đó là chính xác hay điều này nên đi vào mã nguồn của tôi? Cảm ơn sự giúp đỡ của bạn. – MrDean

-1

Nếu bạn sử dụng chế độ thiết kế, bạn chỉ có thể nhấn đúp chuột vào hộp văn bản của bạn và nó sẽ tạo ra những phương pháp dành cho bạn:

private void tbxProdAc_TextChanged(object sender, EventArgs e) 
    { 

    } 

    private void txtbxHowMany_TextChanged(object sender, EventArgs e) 
    { 

    } 

sau đó bạn chỉ cần chỉnh sửa chúng như thế này:

 private void tbxProdAc_TextChanged(object sender, EventArgs e) 
    { 
     txtbxHowMany.Clear(); 
    } 

    private void txtbxHowMany_TextChanged(object sender, EventArgs e) 
    { 
     tbxProdAc.Clear(); 
    } 
+0

TextBox .. ::. TextChanged Event - Xảy ra khi nội dung của hộp văn bản thay đổi giữa các bài đăng với máy chủ. – LiamB

1

ASP.NET Thay đổi ID của điều khiển được tạo ra, vì vậy có lẽ tbxProdAc của bạn sẽ có nó id đã thay đổi thành thứ khác. Bạn cần phải chạy ứng dụng một lần, xem mã nguồn và biết Id tầm kiểm soát của bạn và sau đó thay thế "tbxProdAc" với Id mới trong bạn

txtbxHowMany.Attributes.Add("onclick", "document.getElementById('tbxProdAC').innerText='';"); 

và có nó sẽ làm việc onLoad.

1

vấn đề chính ở đây là khi điều khiển của bạn nằm trong một điều khiển khác (ví dụ: lưới) asp.net tiền tố id của điều khiển của bạn để giữ id của điều khiển duy nhất, ví dụ id sẽ không phải là txbProdAc nhưng nó sẽ là Gridview1_txbProdAc hoặc thậm chí là: Panel1_Panel2_gridview1_txProdAc.

nếu bạn muốn biết mã sau ID asp.net sẽ 'cấp' hoặc 'đổi tên' kiểm soát của bạn, bạn có thể sử dụng thuộc tính .ClientID: txtProdAc.ClientID sẽ cung cấp cho bạn id bạn phải sử dụng từ javascript/jquery.

nếu bạn đã từng đặt txbProdAc trong một điều khiển khác, nó sẽ vẫn hoạt động vì hàm .ClientID sẽ luôn cung cấp cho bạn id đúng cho điều khiển trong tập lệnh khách.

Michel

0

Mở rộng trên Michel's câu trả lời, bạn có sự kiện đang thêm nên đúng nhưng bạn cần phải thiết lập các selector id khác nhau như ASP.NET thay đổi id đó được gửi cho khách hàng:

txtbxHowMany.Attributes.Add("onclick", string.Format("document.getElementById('{0}').innerText='';", tbxProdAC.ClientID)); 
0

Thêm một chút vào những gì TheOne đã trả lời, khi chúng tôi xem nguồn của trang web, nó sẽ hiển thị nội dung được hiển thị. nơi ID sẽ khác. một số điều như thế này.

txtbxHowMany.Attributes.Add("onclick", "document.getElementById('ctl00_ContentPlaceHolder1_tbxProdAC').innerText='';") 
Các vấn đề liên quan