0

列の1つに1つの入力があるaspデータグリッドがあります

     <asp:DataGrid ID="dgItem" runat="server" Width="100%" CssClass="TableList" AutoGenerateColumns="False" PagerStyle-Visible="False">
      <Columns>

         <asp:TemplateColumn HeaderText="Disc %">
        <HeaderStyle HorizontalAlign="Right" CssClass="ListHeader"></HeaderStyle>
        <ItemStyle HorizontalAlign="Right" Width="6%" CssClass="TdList"></ItemStyle>
         <ItemTemplate>
                <input class="Input" onkeypress="if((event.keyCode<48 || event.keyCode>57) &amp;&amp; event.keyCode != 46 &amp;&amp; event.keyCode != 45) event.returnValue=false;"
id="txtDiscRate" style="width: 100%; text-align: right" value="0.00" name="txtDiscRate"
runat="server" onchange="checkrate();">
         </ItemTemplate>
         </asp:TemplateColumn>
     </Columns>
    <PagerStyle Visible="False"></PagerStyle>
 </asp:DataGrid>

VB.net コードでその列の値を設定する方法 この列は 10 番目のセルです。1 番目のセルには、10 列目に設定する必要がある値があります。

だから、私は次のことを試しました..しかし、うまくいきません。

 Dim lnDiscRate As Double
 Double.TryParse(lodgGrid.Cells(1).Text, lnDiscRate)
 Dim loDiscRate As HtmlInputText
 For Each lodgGrid In dgItem.Items
   loDiscRate = lodgGrid.Cells(10).FindControl("txtDiscRate")
   loDiscRate.Value = lnDiscRate 'Not working :(
   loDiscRate.Enabled = True 'this is Working.. 
 Next

Plsは助けて!!

何か他のものを手に入れました。私がこれをするとき

CType(lodgGrid.FindControl("txtDiscRate"), HtmlInputText).Value = 10 ' Working
CType(lodgGrid.FindControl("txtDiscRate"), HtmlInputText).Value = lnDiscRate ' Not Working
4

1 に答える 1

0

DataGrid に ItemDataBound を実装し、以下を使用します

Private Sub dgItem_ItemDataBound(sender As Object, e As DataGridItemEventArgs) Handles dgItem.ItemDataBound

'Get the text value of the second cell as stated above, if you want the first use 0
Dim lnDiscRate As String
lnDiscRate = e.Item.Cells(1).Text

'set the text value of the desired input to the string found above...
CType(e.Item.FindControl("txtDiscRate"), HtmlInputText).Value = lnDiscRate

End Sub
于 2013-04-30T15:18:50.820 に答える