【问题标题】:Radgrid: Referencing control on same row as textbox in ItemTemplateRadgrid:引用与 ItemTemplate 中的文本框在同一行上的控件
【发布时间】:2019-08-14 18:10:37
【问题描述】:

我在我的 C#/ASP.NET 项目中使用 Telerik Radgrid 控件。我的 RadGrid 中有一个 GridTemplateColumn。在该模板列中,我有一个文本框。在该文本框的 OnTextChanged 事件中,我想引用 VehicleId 列中的值。我该怎么做?

RadGrid 大致是这样设置的......

  <telerik:RadGrid ID="RadGridVehicle" runat="server"
       Skin="Office2010Silver" EnableEmbeddedSkins="true" AllowPaging="False" AllowSorting="True"
       GridLines="None"
       OnItemCommand="RadGridVehicle_ItemCommand"
       OnNeedDataSource="RadGridVehicle_NeedDataSource" PageSize="50"
       OnItemDataBound="RadGridVehicle_ItemDataBound"
       OnItemCreated="RadGridVehicle_ItemCreated">
<HeaderContextMenu EnableTheming="True">
  <CollapseAnimation Type="OutQuint" Duration="200"></CollapseAnimation>
</HeaderContextMenu>
<MasterTableView AutoGenerateColumns="False" Width="100%">
  <RowIndicatorColumn>
    <HeaderStyle Width="20px"></HeaderStyle>
  </RowIndicatorColumn>
  <ExpandCollapseColumn>
    <HeaderStyle Width="20px"></HeaderStyle>
  </ExpandCollapseColumn>
  <Columns>
    <telerik:GridBoundColumn DataField="VehicleId"
                 UniqueName="VehicleId" Display="True">
    </telerik:GridBoundColumn>

    <telerik:GridTemplateColumn UniqueName="VehicleCostColumn" HeaderText="Vendor Cost">
      <ItemTemplate>
        <asp:TextBox ID="VehicleCostAmt" AutoPostBack="True" OnTextChanged="VehicleCostAmt_OnTextChanged" runat="server" Width="55px"></asp:TextBox>
      </ItemTemplate>
      <HeaderStyle Width="90px"/>
    </telerik:GridTemplateColumn>

因此,您可以看到 VehicleCostAmt 文本框有一个 OnTextChanged 事件。现在该事件被编码为...

protected void ProductCostAmt_OnTextChanged(object sender, EventArgs e)
{
    TextBox txt = sender as TextBox;
    if (txt != null)
    {

    }
}

我能够很好地看到 txt.Text 并获得价值。我只想能够获得该特定行的 VehicleId 值。我该怎么做?

过去我做过类似的事情,但在这种情况下它不起作用......

GridDataItem dataItem = e.Item as GridDataItem;
int vehicleId = Convert.ToInt32(dataItem["VehicleId"].Text);

有什么想法吗?谢谢!

【问题讨论】:

    标签: c# asp.net telerik radgrid


    【解决方案1】:

    这就是你的做法

    GridDataItem dataItem = txt.NamingContainer as GridDataItem;
    int VehicleId = Convert.ToInt32(dataItem["VehicleId"].Text);
    

    就是这样!

    【讨论】:

    猜你喜欢
    • 2020-10-03
    • 1970-01-01
    • 1970-01-01
    • 2012-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多