簡體   English   中英

使列內的值可點擊(觸發click_event)

[英]Making values inside column clickable (fires click_event)

我有一個網格,我想使第一列中的值“ clickable”,以便它們觸發click事件。 第一列中的值是從sql服務器查詢中填充的。

做到這一點的最佳方法是什么?

下面是我的網格:

    <asp:GridView runat="server" ID="HSMGrid"
                AutoGenerateColumns="false"
                DataKeyNames="Status"
                OnRowCommand="grdvwSearchDepositTransaction_RowCommand" OnRowDataBound="grdSearch_RowDataBound" ShowHeaderWhenEmpty="true"
                CssClass="grid" Width="550">
                <Columns>
                        <asp:BoundField DataField="TransactionGroupsEntry.groupID" HeaderText="BatchID" ItemStyle-CssClass="mediumColumn columnCenter" />
                        <asp:BoundField DataField="TransactionGroupsEntry.bankNumber" HeaderText="Bank" ItemStyle-CssClass="mediumColumn columnCenter" />
                        <asp:BoundField DataField="TransactionGroupsEntry.branchNumber" HeaderText="Branch" ItemStyle-CssClass="mediumColumn columnCenter" />
                        <asp:BoundField DataField="TransactionGroupsEntry.cashInTicketAmount" HeaderText="Cash-In Ticket Amount" ItemStyle-CssClass="mediumColumn columnCenter" />
                        <asp:BoundField DataField="TransactionGroupsEntry.createdBy" HeaderText="Created By" ItemStyle-CssClass="mediumColumn columnCenter" />
                        <asp:BoundField DataField="TransactionGroupsEntry.dateCreated" HeaderText="Date Created" ItemStyle-CssClass="mediumColumn columnCenter" />
                        </Columns>
                    <EmptyDataTemplate>
                        <span style="font-weight: bold;">No Transactions have been entered</span>
                    </EmptyDataTemplate>
            </asp:GridView>

編輯::這是我目前遵循第一個答案的建議: 在此處輸入圖片說明

您需要將第一列轉換為模板字段。 然后,模板字段的ItemTemplate將包含服務器端控件(即LinkBut​​ton)。 然后,此控件可以附加一個服務器端OnClick事件,該事件將處理服務器端邏輯。 下面是一個示例:

 <asp:TemplateField HeaderText="BatchID">
      <ItemTemplate>
           <asp:LinkButton runat="server" ID="btnBatchId" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "TransactionGroupsEntry.groupID") %>' OnClick="btnBatchId_Click" Text='<%# DataBinder.Eval(Container.DataItem, "TransactionGroupsEntry.groupID") %>' />
      </ItemTemplate>
 </asp:TemplateField>

在文件背后的代碼中,單擊事件可能類似於以下示例。 我添加了解析/獲取與LinkBut​​ton關聯的ID的功能:

 protected void btnBatchId_Click(object sender, EventArgs e) {
      var linkButton = sender as LinkButton;
      if (linkButton != null) {
           var batchId = 0;
           if (int.TryParse(linkButton.CommandArgument, out batchId)) {
                // batchId variable should contain a valid integer value
           }
      }
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM