2017-08-28 7 views
0

「btnAutocomplete」というIDを使用してコードの背後からボタンにアクセスするにはどうすればよいですか?あなたがこれを使用する方法を尋ねてきたように、私はあなたが追加することを示唆しているコードの背後からボタンにアクセスするにはどうすればいいですか

("#btnAutocomplete").val = ""; 

:あなたは、単にJavaScriptのメソッド

document.getElementById("btnAutocomplete").innherHTML(""); 

またはjQueryのgetElementByIdを使用しないでくださいなぜ

<asp:GridView DataKeyNames="AutocompleteSchoolChild_Child" Width="1500px" CssClass="table table-bordered" OnDataBound="GridAutocomplete_OnDataBound" 
    ID="GridAutocomplete" runat="server" AutoGenerateColumns="false" AllowPaging="true" DataSourceID="sqlAutocomplete" Visible="true" PageSize="10" 
    OnSelectedIndexChanged="GridAutocomplete_OnSelectedIndexChanged"> 
    <Columns> 
     <asp:TemplateField ItemStyle-HorizontalAlign="Center" ItemStyle-width="80px"> 
      <ItemTemplate runat="server"> 
       <asp:Button CssClass="btn btn-default" runat="server" ID="btnAutocomplete" Text="Зачислить" CommandName="Select"/> 
      </ItemTemplate> 
     </asp:TemplateField> 
     ... 
+0

このボタンにアクセスすることで何をしたいですか? –

+0

テキストを変更したい –

+0

ボタンのテキストを変更したいイベントはありますか?私は 'FindControl'メソッド(コントロールIDで検索)を使う時が来たと思います。 –

答えて

0

私はあなたがButtonコントロールにキャスト& GridViewRowインスタンスでFindControlを使用する必要があるように、現在選択されている行にボタンのテキストを変更することを前提としています

protected void GridAutocomplete_OnSelectedIndexChanged(object sender, EventArgs e) 
{ 
    GridViewRow row = GridAutocomplete.SelectedRow; 
    Button btnAutocomplete = (Button)row.FindControl("btnAutocomplete"); 

    btnAutocomplete.Text = "Insert"; // example to use button property 
} 

あなたは中ボタンのテキストを変更したい場合あなたがいないことを確認ことをしている場合は

foreach (GridViewRow row in GridAutocomplete.Rows) 
{ 
    if (row.RowType == DataControlRowType.DataRow) 
    { 
     Button btnAutocomplete = (Button)row.FindControl("btnAutocomplete"); 
     btnAutocomplete.Text = "Insert"; // example to use button text property 
    } 
} 

:すべてのGridViewの行は、あなたが同じイベントハンドラにGridViewRowインスタンスと一緒にforeachループを使用することができます0キャストが正常に動作し、このようにチェックasオペレータ&使用nullにすべての直接キャストを変更します。

GridViewRow row = (sender as GridView).NamingContainer as GridViewRow; 
Button btnAutocomplete = row.FindControl("btnAutocomplete") as Button; 
if (btnAutocomplete != null) 
{ 
    btnAutocomplete.Text = "Insert"; // example to use button text property 
} 

NB:SelectedRowは適切な方法であるように、ここでの目標は、TemplateField内のボタンコントロールにアクセスする前に最初のGridViewRowのインスタンスを取得しています現在選択されている行を取得します。

+0

'GridViewRow row =(GridViewとしての送信者).NamingContainerをGridViewRow;としてみましたが、動作しません。 'GridViewRow row = GridAutocomplete.SelectedRow'を試してみました。 –

0

あなたの質問に書いたあなたのHTMLまたはあなたのaspxレイアウトコードの後ろのコード。

<script type="text/javascript"> 

    //this function runs when the webpage is loaded 
    $(document).ready(function() 
    { 
     document.getElementById("btnAutocomplete").innherHTML("whatever you want here"); 
     //OR 
     ("#btnAutocomplete").attr("style","whatever style html you want here"); 
    }); 

    //OR declare a private function which you can call through a click event 
    function buttonchange() 
    { 
     ("#btnAutocomplete").val = "whatever value you want to give it"; 
    } 

</script> 

次の例のように、いくつかのHTML要素にプライベート関数の呼び出しイベントを割り当てることができます。

<button type="button" class="btn" onclick="buttonchange()">Button changer</button> 
+0

私はこのメソッドをどのように使うべきかを教えてもらえますか? –

+0

確かに、自分の答えを編集してその実装について説明してください –

0

私はあなたのGridViewのためOnRowCommandを定義して、ボタンのコマンド名を定義し、見ることができると思いますこの:

protected void grdSms_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
    if (e.CommandName.ToLower() == "select") 
    { 
    //do something 
    } 

} 
012:背後

<asp:GridView DataKeyNames="AutocompleteSchoolChild_Child" Width="1500px" CssClass="table table-bordered" OnDataBound="GridAutocomplete_OnDataBound" 
ID="GridAutocomplete" runat="server" AutoGenerateColumns="false" AllowPaging="true" DataSourceID="sqlAutocomplete" Visible="true" PageSize="10" 
OnSelectedIndexChanged="GridAutocomplete_OnSelectedIndexChanged" 
OnRowCommand="GridAutocomplete_RowCommand"> 
<Columns> 
    <asp:TemplateField ItemStyle-HorizontalAlign="Center" ItemStyle-width="80px"> 
     <ItemTemplate runat="server"> 
      <asp:Button CssClass="btn btn-default" runat="server" ID="btnAutocomplete" Text="Зачислить" CommandName="Select"/> 
     </ItemTemplate> 
    </asp:TemplateField> 

とコードで

+0

それは機能しますか? 'e.CommandName!=" Select "' – AsifAli72090

関連する問題