我正在创建一个带有如下标记的自定义控件:
<Custom:CustomGrid>
<Columns>
<Custom:DataColumn HeaderText="FirstName" />
<Custom:DataColumn HeaderText="LastName" />
</Columns>
</Custom:CustomGrid>
为了分别呈现外部 Div/Table 和 Column 标签,我将同时覆盖 Render 和 RenderChildren。
我希望每个 TH 都包含一个 LinkButton,HeaderText
用于排序。我创建了一个foreach
循环来运行列集合,并为每个列创建一个 TH,其中包含一个 LinkButton。我使用渲染出 LinkButtonlinkBtn.RenderControl(writer);
我在 html 中得到的只是一个空的锚标记。我猜这是因为当它以这种方式呈现时,asp.net 不知道呈现服务器控件的 JS 端。但我不知道我能做些什么不同的事情。有任何想法吗?
编辑:我可以看到创建了 href="javascript:_doPostBack('myGrid$Sort_firstName','')" 。我不知道为什么字符被 html 转义,但我猜它只是 html 源查看器(或者可能不是......)无论如何,事件处理程序仍然没有被触发。