2015-06-08 51 views
0

我有我的webapge一个DataGrid,看起来像这样:如何检测DataGrid中的单选按钮何时被选中?

<asp:datagrid id="dgCodes" runat="server" bodyHeight="300px" CssClass="tblScroll" Width="100%"> 
    <Columns> 
     <asp:TemplateColumn ItemStyle-HorizontalAlign="Center" HeaderStyle-CssClass="clsGridHeaderText" 
      HeaderStyle-Wrap="False" HeaderStyle-Width="10%" ItemStyle-Width="10%"> 
      <HeaderTemplate> 
       Select 
      </HeaderTemplate> 
      <ItemTemplate> 
       <INPUT type="radio" name="chkSelect" TabIndex="-1" value='<%# DataBinder.Eval(Container, "DataItem.Code") %>' onclick="mfpSetCode(this);" <%# mfpDisable(DataBinder.Eval(Container, "DataItem.Code")) %>> 
      </ItemTemplate> 
     </asp:TemplateColumn> 
    </Columns> 
</asp:datagrid> 

因此,有1个名为“选择”单选按钮栏,然后一旦数据被绑定到DataGrind几列得到补充。

当用户在这个DataGrid中选择一个单选按钮时,它应该填充2个子DataGrids,在一个绑定列中使用唯一值。

我能够为网格设置一个SelectedIndexChanged事件,希望能够捕捉到单选按钮列的选择,然后我可以通过这种方式获取数据,但事实并非如此。

当像这样选择RB时,如何获得一些数据?

回答

1

改为使用<asp:RadioButton>。这会给你OnCheckChanged事件。

<asp:RadioButton ID="rbSelect" runat="server" 
    Text='<%# DataBinder.Eval(Container, "DataItem.Code") %>' 
    OnCheckChanged="rbSelect_CheckChanged" 
    AutoPostBack="true" /> 

然后在你的代码后面处理事件。

Protected Sub rbSelect_CheckChanged(ByVal sender As Object, ByVal e As EventArgs) 
{ 

} 
+0

在运行时选择网格中的行时,该事件似乎没有触发。我错过了什么吗? – sab669

+0

当您选择该行时,它不应该触发。当您单击该行上的RadioButton时,它应该会触发。 –

+0

对不起,这就是我的意思。没有被抓住。尝试在事件存根后添加'Handles rbSelect.CheckedChanged',尝试在PageLoad中手动附加处理程序。无论哪种方式,选择单选按钮时都不会触发事件中的断点。我*认为*这可能是PostBack“中断”的事情,因为每当我选择了某项内容时,Page_Load被解雇了。 – sab669

相关问题