2011-07-06 45 views
22

私はチェックボックスの列を持つGridViewを持っています(残りのGridViewはデータベースから取り込まれています)。私はAJAXを使ってさまざまな機能を実行していますが、私はちょうどOnCheckedChangedイベントを適切な場所で呼び出さないのですか?それは何らかの種類のUpdatePanelでラップする必要がありますか?私はまだこれがどのように動作するかについて本当に新しいです...基本的に私が目指しているのは、チェックボックスをオンにしたときにデータベースのビット値を変更することです。私はそれを行う方法の論理を知っている、私はちょうど私が正しい方法で私のOnCheckedChangedイベントに対処しているのか分からない。OnCheckedChangedイベントが起動しない

.CS

 protected void CheckBoxProcess_OnCheckedChanged(Object sender, EventArgs args) 
    { 
     CheckBox checkbox = (CheckBox)sender; 
     GridViewRow row = (GridViewRow)checkbox.NamingContainer; 
     OrderBrowser.Text += "CHANGED"; 
    } 


    } 

の.aspx

<html xmlns="http://www.w3.org/1999/xhtml"> 

 <asp:DropDownList runat="server" ID="orderByList" AutoPostBack="true"> 
      <asp:ListItem Value="fName" Selected="True">First Name</asp:ListItem> 
      <asp:ListItem Value="lName">Last Name</asp:ListItem> 
      <asp:ListItem Value="state">State</asp:ListItem> 
      <asp:ListItem Value="zip">Zip Code</asp:ListItem> 
      <asp:ListItem Value="cwaSource">Source</asp:ListItem> 
      <asp:ListItem Value="cwaJoined">Date Joined</asp:ListItem> 
     </asp:DropDownList> 
    </div> 
    <div> 
     <asp:Label runat="server" ID="searchLabel" Text="Search For: " /> 
     <asp:TextBox ID="searchTextBox" runat="server" Columns="30" /> 
     <asp:Button ID="searchButton" runat="server" Text="Search" /> 
    </div> 
<div> 
<asp:UpdatePanel ID = "up" runat="server"> 
<Triggers> 
    <asp:AsyncPostBackTrigger ControlID = "orderByList" 
    EventName="SelectedIndexChanged" /> 
    <asp:AsyncPostBackTrigger ControlId="searchButton" EventName="Click" /> 
</Triggers> 

<ContentTemplate> 
<div align="center"> 
    <asp:GridView ID="DefaultGrid" runat = "server" DataKeyNames = "fName" 
    onselectedindexchanged = "DefaultGrid_SelectedIndexChanged" 
    autogenerateselectbutton = "true" 
    selectedindex="0"> 
    <SelectedRowStyle BackColor="Azure" 
    forecolor="Black" 
    font-bold="true" /> 
    <Columns> 
    <asp:TemplateField HeaderText="Processed"> 
       <ItemTemplate> 
        <asp:CheckBox ID="CheckBoxProcess" runat="server" Enabled="true" OnCheckedChanged = "CheckBoxProcess_OnCheckedChanged" /> 
       </ItemTemplate> 
      </asp:TemplateField> 

    </Columns> 
    </asp:GridView> 
    </div> 
    <asp:TextBox ID="OrderBrowser" columns="100" Rows="14" runat="server" Wrap="false" TextMode="MultiLine" ReadOnly = "true"> 
    </asp:TextBox> 
    </ContentTemplate> 
    </asp:UpdatePanel> 



</div> 
</form> 

答えて

54

チェックボックスコントロールでAutoPostBackをオンにしてみてください。

<asp:CheckBox ID="CheckBoxProcess" runat="server" Enabled="true" OnCheckedChanged = "CheckBoxProcess_OnCheckedChanged" AutoPostBack="true" /> 

これはおそらく、メソッドが呼び出されていない理由です。

+0

チェックは2のよう秒間表示され、その後消えます。私はデータベース内の何も処理していないので、ちょうどその方法かもしれませんか? DBに特定の値がある場合には、チェックが表示されるか消えます。しかし、私のテストコードは、メソッドが呼び出されていることを示していません。 –

+0

おそらく、機能をチェックするためにダミーデータを入力するだけの価値があります。 – JConstantine

+0

私はそれをテストしていましたが、テストで何も表示されませんでした:( –

-1

DBとの値をチェックしてみてください:私はこれを行うと

Checked='<%# Convert.ToBoolean(Eval("Processed"))%>」

関連する問題