2011-06-20 12 views
1

WebページにMasterpageのASPページがあります。このページでは、私はそれらの隣に編集ハイパーリンクを持つ複数のラベルを持っています。ユーザーが編集ハイパーリンクをクリックすると、ラベルがテキストボックスになり、その隣にハイパーリンクが保存され、編集されます。私はこれをやろうとしていて、クリックしたときに編集ハイパーリンクが働くことさえできません。ここに私の.jsMasterページでASPページのAjax編集可能なラベル

/// <reference name="MicrosoftAjax.js"/> 
// Global variables 
var Label1, TextBox1, Edit1, Save1, Cancel1; 

Sys.Application.add_init(AppInit); 

function AppInit(sender) { 
    Label1 = $get('labelWorkPhone'); 
    TextBox1 = $get('textboxWorkPhone'); 
    Edit1 = $get('hyperlinkEditWorkPhone'); 
    Save1 = $get('hyperlinkSaveWorkPhone'); 
    Cancel1 = $get('hyperlinkCancelWorkPhone'); 

    $addHandler(Edit1, "click", Edit1_Click); 
    $addHandler(TextBox1, "blur", TextBox1_Blur); 
    $addHandler(Save1, "click", Save1_Click); 
    $addHandler(Cancel1, "click", Cancel1_Click); 
} 

function Edit1_Click() { 
    TextBox1.value = Label1.innerHTML; 

    Label1.style.display = 'none'; 
    TextBox1.style.display = ''; 

    TextBox1.focus(); 
} 

function Save1_Click() { 
    TextBox1.blur(); 
} 

function Cancel1_Click() { 
    Label1.style.display = ''; 
    TextBox1.style.display = 'none'; 
} 

function TextBox1_Blur() { 
    var labelUpdated; 

    if (Label1.textContent == TextBox1.value) 
     labelUpdated = false; 
    else 
     labelUpdated = true; 

    Label1.innerHTML = TextBox1.value; 

    TextBox1.style.display = 'none'; 
    Label1.style.display = ''; 

    if (labelUpdated) 
     PageMethods.SetWorkPhone(TextBox1.value); 
} 

ですこれは

<td class="style1"> 
    <asp:Label ID="labelWorkPhone" runat="server" Text="labelWorkPhone"></asp:Label> 
    <asp:TextBox ID="textboxWorkPhone" runat="server" Style="display: none;"></asp:TextBox> 
</td> 
<td class="style1"> 
    <asp:HyperLink CssClass="a" ID="hyperlinkEditWorkPhone" runat="server" Font-Underline="True" 
    ForeColor="Blue">Edit</asp:HyperLink> 
    <asp:HyperLink CssClass="a" ID="hyperlinkSaveWorkPhone" runat="server" 
    Style="display: none;">Save</asp:HyperLink> 
    <asp:HyperLink CssClass="a" ID="hyperlinkCancelWorkPhone" runat="server" 
    Style="display: none;">Cancel</asp:HyperLink> 
</td> 

<asp:ScriptManager ID="scriptManager1" runat="server" EnablePageMethods="true"> 
    <Scripts> 
     <asp:ScriptReference Path="~/Scripts/WorkPhoneJavaEdit.js" /> 
</Scripts> 
    </asp:ScriptManager> 

私のhtmlです前もってありがとう。

+0

私は$のAddHandler方法がわからないんだけど、彼らは方法がonclickのこととONBLURする必要がありますか? – Joe

+0

正直、私は知らない。私はこの記事を読もうとしていました。私はajaxをやったことがなく、最近はデスクトップデザインからウェブデザインに切り替えました。編集をクリックしたときに変更する必要があるので、彼らはonclickする必要があると思います。 –

+0

私は、ContentHoldersが実行時にコントロールの名前を変更して何かが起こっていると思いますか?誰が何をすべきか知っていますか? –

答えて

0

変更してみてください:

TextBox1.style.display = ''; 

TextBox1.style.display = 'block'; 
+0

何も変わらない –

関連する問題