2015-12-22 60 views
0

這是我用標籤控件所能做的。如何從後面的代碼訪問和設置跨度控制的屬性?

Label mylabel = (Label)e.Row.FindControl("label1"); 
myLable.Text=""; 

我想要做一樣的跨度和輸入控制。這是我的嘗試,但它不起作用。

var myspan = e.Row.FindControl("span1"); 
TextBox myinput=(TextBox)e.row.FindControl("Textbox1"); 

這是我的aspx代碼:

<asp:TemplateField HeaderText="abc" SortExpression="val1"> 
    <ItemTemplate> 
     <span id='myspan<%#Eval("Sno")%>'> 
      <%#Eval("abc")%></span> 
    </ItemTemplate> 
    <ItemStyle HorizontalAlign="Right" Width="100px" /> 
    <HeaderStyle HorizontalAlign="Center" Width="100px" /> 
</asp:TemplateField> 
<asp:TemplateField HeaderText="abc2" SortExpression="val2"> 
    <ItemTemplate> 
     <input id='mytextBox<%#Eval("Sno")%>' type="text" 
      onkeypress="return isNumberKey(event,this);" onchange="return RowUpdategrid(event,this,<%#Eval("Sno")%>,'<%#Eval("val3") %>');this.oldvalue = this.value;" 
      onfocus="this.oldvalue = this.value;" maxlength="12" class="GridText" style="width: 70px" 
      value='<%#Eval("CurrentYearLiquidatedPlan")%>' onpaste="return false" disabled="disabled" /> 
    </ItemTemplate> 
    <ItemStyle HorizontalAlign="Right" /> 
    <HeaderStyle HorizontalAlign="Center" Width="105px" /> 
</asp:TemplateField> 
+0

也發佈你的aspx標記。 – mshsayem

+0

將'runat =「server」'和'ClientIDMode =「Predictable」'屬性添加到'span'中。 – mshsayem

+0

但是有一個類跨度,或者我應該使用var? –

回答

0

您只能通過e.Row.FindControl找到服務器端控件。這意味着,您只能訪問runat="server"e.Row.FindControl。沒有runat="server"的默認HTML標記無法訪問。

也看看下面SO貼「How to access span id in code behind」。

<span id="expSpan" runat="server"></span> 

當你想格式化輸出,你可以使用

<span id='myspan<%#Eval("Sno")%>'><%#Eval("abc", "0:n3")%></span> 

請看標準Numeric Format Strings在MSDN瞭解詳細信息。

+0

@ STORM - 我試圖設置默認的編號。通過在rowdataboundevent中使用string.format()來顯示在網格列中的小數。不幸的是,其中一列恰好是跨度。控制。所以從你說的我是否正確地推斷出這是不可能的跨度控制? –

+0

使用Eval方法的第二個參數來格式化你的字符串,比如'<%#Eval(「Sno」,「{0:n}」)%> – STORM

+0

如果我確定要顯示多少小數小數點後面。但是我從數據庫中獲取值,所以我需要通過將數據庫值(例如:String.Format(「N {0}」,GridRoundoffDecimal)連接到{「0:N」}來從代碼背後執行此操作) PS GridRoundoffDecimal是我從數據庫獲得的值。@ Storm –

相關問題