c#
  • asp.net
  • 2012-06-12 75 views 0 likes 
    0

    EDITED QUESTION從的ImageButton傳遞參數背後

    到代碼我想通過一個變量,在這種情況下「名稱」包含字符串話費,後面方法的代碼,並使用debug.print看它

    string name = "bill"; 
    <asp:ImageButton runat="server" id="DeleteButton" ImageUrl="Images/delete.jpg" 
    CommandArgument='<%# Eval("name") %>' CommandName="ThisBtnClick" text="Delete Me" onclick="DeleteMonth" /> 
    

    我已經試過:

    CommandArgument='<%# Eval("name") %>' 
    CommandArgument='<%# Bind("name") %>' 
    CommandArgument='<%= "name" %> 
    

    這是我的打印功能

    protected void DeleteMonth(object sender, EventArgs e) 
    { 
        ImageButton btn = (ImageButton)sender; 
         switch (btn.CommandName) 
        { 
         case "ThisBtnClick": 
          Debug.Print("--" + btn.CommandArgument.ToString()); 
          break; 
         case "ThatBtnClick": 
          break; 
        } 
    } 
    

    我想我需要首先綁定一些東西,但老實說我不知道​​。我打印時只是空白。有沒有人

    編輯

    我想要做的是動態創建一個表之前處理這個。名稱變量從數據庫中獲取,然後根據該名稱創建一個表。我希望表格的最後一列是X,所以我可以刪除該行中的所有內容。我正在使用一個imagebutton。這裏是我的代碼

    using (System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(sqlConnectionString)) 
        { 
         conn.Open(); 
         string query = "SELECT * FROM dbo.Archive"; 
         System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(query, conn); 
         System.Data.SqlClient.SqlDataReader rdr = cmd.ExecuteReader(); 
    
         while (rdr.Read()) 
         { 
          string name, created, 1Updated, 2Updated, 3Updated; 
          name = rdr.GetString(1);     // name of month 
          if (!(rdr.IsDBNull(2)))      // checks date for a null value 
          { created = rdr.GetDateTime(2).ToString(); }// if not null date is turned into a string and saved in a variable 
          else 
          { created = "---"; }      // else date is given a default value 
          if (!(rdr.IsDBNull(3))) 
          { 1Updated = rdr.GetDateTime(3).ToString(); } 
          else 
          { 1Updated = "---"; } 
          if (!(rdr.IsDBNull(4))) 
          { 2Updated = rdr.GetDateTime(4).ToString(); } 
          else 
          { 2Updated = "---"; } 
          if (!(rdr.IsDBNull(5))) 
          { 3Updated = rdr.GetDateTime(5).ToString(); } 
          else 
          { 3Updated = "---"; } 
    
          Response.Write("<tr><td>" + name + "</td>"); 
          Response.Write("<td>" + created + "</td>"); 
          Response.Write("<td>" + 1Updated + "</td>"); 
          Response.Write("<td>" + 2Updated + "</td>"); 
          Response.Write("<td>" + 3Updated + "</td>"); 
          Response.Write("<td><a>1</a></td>"); 
          Response.Write("<td><a>2</a></td>"); 
          Response.Write("<td><a>3</a></td>"); 
          Response.Write("<td><a>Compliance Summary</a></td>"); 
    
          Response.Write("<td align = 'center'>"+name);%> 
          <asp:ImageButton runat="server" id="DeleteButton" ImageUrl="Images/delete.jpg" 
          CommandArgument='<%# Eval("name") %>' CommandName="ThisBtnClick" text="Delete Me" onclick="DeleteMonth" /> 
          <% Response.Write("</td></tr>"); 
         }  
    
    +0

    Try,DeleteButton.CommandArgument = name;在Page_Load中。 – adatapost

    回答

    3

    使用這樣......

    <asp:ImageButton runat="server" id="DeleteButton" ImageUrl="Images/delete.jpg"  
    CommandArgument='<%# Eval("UserName")%>' text="Delete Me" onclick="DeleteMonth" /> 
    
    protected void DeleteMonth(object sender, EventArgs e) 
    { 
    
    **ImageButton btn = ((ImageButton)sender).CommandArgument;** 
        switch (btn.ToString()) 
        { 
         case "ThisBtnClick": 
          Debug.Print("--" + btn.CommandArgument.ToString()); 
          break; 
         case "ThatBtnClick": 
          break; 
        } 
    } 
    
    +0

    <%#Eval(「UserName」)%>不起作用。當轉到後面的代碼後面的任何打印......只是硬編碼' - ' – kev670

    1

    使用CommandArgument='<%#Eval("name")%>'

    ,而不是CommandArgument="<%Response.Write(name);%>"

    編輯

    你不使用Data co像GridView,FormView或DataList?如果沒有,你必須使用其中的一個才能使用Eval方法。作爲GridView的一個例子,你必須首先綁定GridView數據源。

    http://msdn.microsoft.com/en-us/library/aa479353.aspx

    OR

    聲明公共屬性的數據庫字段。 How can I use Eval in asp.net to read fields from a database?

    Eval方法採用數據字段的名稱,並返回一個字符串,該字符串包含數據源中當前記錄中該字段的值。

    +0

    它只是顯示一個空白。在使用Eval之前,我需要做些什麼 – kev670

    +0

    @ user967797:請檢查我的編輯。 –

    相關問題