0

TextBox根据某些条件禁用了 gridview 中的 a。

后来,当我遍历 时griview,当我检查 TextBox.Enabled 属性时,它显示为 true。但是我已将该行设置为 false 。

此代码在 rowdatabound 事件中我只是发布与问题相关的代码

TextBox txt_location = (TextBox)e.Row.Cells[htDGV_Map["Trailer's Last Location"]].FindControl("txt_location");

string remark_status = ""; string status = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "SHIP_TRAIL_STATUS"));

if (status.Equals("L")) remark_status = "REMARK_POSTMARCH"; else remark_status = "REMARK_REACH";

if (remark_status.Equals("REMARK_REACH")) { txt_location.ReadOnly = true; }

后来我试图访问这个属性的值


TextBox txt_loc =
(TextBox)Gridrow.Cells[htDGV_Map["Tracking Trailers
Locations"]].FindControl("txt_location");

if(txt_loc.ReadOnly == true) { // other code } Here the property comes as false, although I am expecting it to be true.

我尝试使用 的ReadOnly属性TextBox,但即使在这里ReadOnly,当我期望它为真时,也发现该属性为假。

4

1 回答 1

0

在 RowDataBound 事件中为控件应用自定义设置时要注意的一件事是,如果页面执行 PostBack,除非您重新绑定 GridView,否则自定义设置将丢失。

可能的解决方法是确保您始终在每个 PostBack 上重新绑定 GridView,或者在 PreRender 事件中应用 Enabled / ReadOnly 设置,遍历 DataRows,但您还需要在某个地方(隐藏字段)存储 SHIP_TRAIL_STATUS RowDataBound 以便您可以在 PreRender 中访问它 - ViewState 将确保存储的值在 PostBack 期间保持静态。

于 2013-04-07T07:33:34.027 回答