2015-06-08 86 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

相關問題