2012-02-22 57 views
2

私は、データベースにgriviewデータセットを保存した後、私はgriviewを無効にする必要が無効]ボタンGridViewのTemplateField内部

<asp:Panel runat="server" ID="pnlBeforeSave" Visible="true"> 
<asp:GridView ID="gvP" runat="server" AutoGenerateColumns="false" AllowPaging="false" 
    AllowSorting="false" CssClass="list-table" HeaderStyle-CssClass="header"> 
    <Columns> 

    <asp:TemplateField HeaderText="Action" ItemStyle-Width="20%" HeaderStyle-HorizontalAlign="Center" 
    ItemStyle-CssClass="unsortable"> 
    <ItemTemplate> 
    <input id="btnPay" type="button" onclick="javascript:OpenEditPaymentItemDialogPage('<%# Eval("PmtId") %>');" 
    value="Edit" class="button save" style="width: 80px" /> 
    </ItemTemplate> 
    </asp:TemplateField> 
    </Columns> 
    </asp:GridView> 
</asp:Panel> 

次GridViewコントロールを持っています。 が有効ですが、btnPayは引き続き有効です。私は後ろのコードからそれを行う必要があります 何か考えですか?

+0

? (HtmlInputButton)row.FindControl( "btnPay")。無効= true; ' – Mubarek

答えて

0

私はそれを行っています。あなたがデータを保存するコードを置いた

C#

ScriptManager.RegisterStartupScript(this, this.GetType(), "HidePaymentItemButtons", "javascript:disableAllButtons_PT;", true); 

JS

 function disableAllButtons_PT() { 
     var gridViewID = "<%=gvPamentItemsList.ClientID %>"; 
     var gridView = document.getElementById(gridViewID); 
     var gridViewControls = gridView.getElementsByTagName("input"); 

     for (i = 0; i < gridViewControls.length; i++) { 
      // if this input type is button, disable 
      if (gridViewControls[i].type == "submit") { 
       gridViewControls[i].disabled = true; 
      } 
     } 
1

あなたがそうあなたのコードが

<ItemTemplate> 
<input ruat="server" id="btnPay" type="button" onclick="javascript:OpenEditPaymentItemDialogPage('<%# Eval("PmtId") %>');" value="Edit" class="button save" style="width: 80px" /> 
    </ItemTemplate> 

または利用するようになるにrunat =「サーバー」要素

の使用を追加することにより、サイドの背後にあるコードにアクセス可能なために、入力タイプは=「ボタン」にする必要がありAsp:Button

<ItemTemplate> 
<asp:button ruat="server" id="btnPay" type="button" onClientclick="javascript:OpenEditPaymentItemDialogPage('<%# Eval("PmtId") %>');" value="Edit" class="button save" style="width: 80px" > </asp:button> 
    </ItemTemplate> 

の..のDataGridViewと無効ボタンのRowDataBoundイベントを活用したより

+0

これを追加すると、この行のフォーマットが正しく行われていないという重大なエラーが発生します。 – Roshe

+1

@Nilaaあなたはonclick形式のためにそれを手に入れます。次のようにしてください:onclick = 'javascript:OpenEditPaymentItemDialogPage(<%#Eval( "PmtId")%>);' – Mubarek

+0

はい。今すぐOKです。 RowDataBoundを使用してボタンを無効にする方法。私はページデータを保存した後、ページ全体を無効にするだけです。保存ボタンがページの最下部にあります。ページデータを保存する前に、griviewのレコードを編集することができます。 – Roshe

0

データを保存した後、次のコードを入力します。私はテストしました。 onlcickは無効になっています。あなたが使用することができます

for (int i = 0; i < gvP.Rows.Count; i++) 
{ 
    HtmlInputButton btn = (HtmlInputButton)gvP.Rows[i].FindControl("btnPay"); 
    if (btn != null) btn.Disabled = true; 
} 
+0

はい.. griview内のボタン以外は無効になっています。 – Roshe

+0

こんにちは、私はあなたのaspxコードをコピーし、gridviewにデータをバインドします。バインド後、私はpnlBeforeSave.Enabled = false;ボタンも無効になります。 –

+0

onclickイベントを追加してボタンに試しましたか? – Roshe

0

<asp:Button ID="btnPay" runat="server" OnClick="btnPay_Click" OnClientClick="return confirm('Are you sure?')" Text="Edit" CommandArgument='<%# Eval("PmtId") %>'/> 

public void btnPay_Click(object sender, EventArgs e) 
{ 
    var button = (Button)sender; 
    ClientScript.RegisterStartupScript(typeof(Page), "key", "<script>OpenEditPaymentItemDialogPage('" + button.CommandArgument + "');</script>"); 

} 
関連する問題