簡體   English   中英

如何從中繼器內的DataGrid中編碼ItemCommand和OnDeleteCommand

[英]How can i code ItemCommand and OnDeleteCommand From a DataGrid inside a Repeater

我在中繼器內部有3個控件,即標簽,按鈕和數據網格。 我已經為按鈕編寫了click事件。 但我不知道如何向Datagrid onitemcommand和ondeletecommand編寫代碼。

這是我的代碼:

 <asp:Repeater runat="server" OnItemDataBound="repeaterSearchResult_ItemDataBound" ID="repeaterSearchResult">
     <ItemTemplate>
         <asp:Label ID="textBoxSearch"  ForeColor="White" width="25%" runat="server" 
              Text="<%#Container.DataItem%>"></asp:Label>
         <asp:Button ID="BTNAdd" runat="server" Text="Add"  OnClick="button_click"/>
         <br />
         <asp:DataGrid ID="dgLCL" runat="server" AutoGenerateColumns="False" 
              ShowFooter="FALSE" CellPadding="3" OnItemCommand="dgLCL_Select" 
              OnDeleteCommand="dgLCL_Delete">
              <asp:BoundColumn DataField="GrossUOMType" HeaderText="Type">
              </asp:BoundColumn>
              <asp:BoundColumn DataField="Volume" HeaderText="Volume">
              </asp:BoundColumn>
              <asp:TemplateColumn HeaderText="DELETE">
                 <ItemTemplate>
                     <asp:ImageButton runat="server" ID="IMGBTNDelete" 
                        ImageUrl="~/AppImages/grid-icon-delete.jpg"
                        ToolTip="Delete"  CommandName="DeleteItem" 
                        OnClientClick="javascript:return confirmDelete();"
                        AlternateText="Delete" />
                 </ItemTemplate>
              </asp:TemplateColumn>
              <asp:TemplateColumn HeaderText="Add">
                  <ItemTemplate>
                      <asp:ImageButton runat="server" ID="IMGBTNAdd" 
                           ImageUrl="~/AppImages/grid-icon-add.jpg"
                           ToolTip="Insert"  CommandName="InsertItem" 
                           AlternateText="Insert" />
                   </ItemTemplate>
              </asp:TemplateColumn>
          </Columns>
        <PagerStyle HorizontalAlign="Left" ForeColor="#000066" BackColor="White" 
                    Mode="NumericPages">
        </PagerStyle>
                                                </asp:DataGrid><br />

這是我的代碼背后:

 protected void repeaterSearchResult_ItemDataBound(object sender, RepeaterItemEventArgs e)
 {
      string Flag = Session["Flag"].ToString();
      if (Flag=="B") 
      {
            e.Item.FindControl("textBoxSearch").Visible = false;
            e.Item.FindControl("BTNAdd").Visible = false;
      }
      DataGrid gv = e.Item.FindControl("dgLCL") as DataGrid;
      //TextBox textBox = e.Item.FindControl("textBoxSearch") as TextBox;
      Label label = e.Item.FindControl("textBoxSearch") as Label;
      // BindGrid(textBox.Text,Session["Flag"].ToString());

      string SFRID = label.Text;
      if (Flag == "L")
      {
         sql = "Select MasterNo , MasterDate,GrossWt,GrossUOMType,Volume from 
                 VW_TransLCLMaster  where tBLG_NUIsActive=1 and PortOfDischargeName='" 
                 + SFRID + "'";
         //mobjGenlib.objDBLib.ExecuteNonQuery(sql);
         SqlCommand cmd = new SqlCommand(sql, con);
         SqlDataAdapter da = new SqlDataAdapter(cmd);
         DataSet ds = new DataSet();
         da.Fill(ds);
         if (gv != null)
         {
             gv.DataSource = ds;
             gv.DataBind();
         }
       }
  }

問題是:

我在Datagrid中有選擇,刪除和插入按鈕。我想知道如何編碼onitem和ondelete命令。

有誰能幫助我解決這個問題。 提前致謝

試試這個在repeater_ItemDataBound中找到您的數據網格

DataGrid dg = (DataGrid)e.Item.FindControl("dgLCL");

而不是觸發您想要的事件,如果您要使用onitemcommand不是在下一行中編寫

 dg.ItemCommand +=

然后按Tab鍵兩次,事件將在后面的代碼中處理。 形成的代碼就像

    dg.ItemCommand += new DataGridItemCommandEventHandler(dg_ItemCommand)
}
void dg_ItemCommand(object sender, DataGridItemCommandEventArgs e)
{
    throw new NotImplementedException();
}

暫無
暫無

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

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