我想在GridView行的任何地方单击一下,复制编辑按钮的相同功能.
下面的代码执行此操作,但存在一个主要问题:如果用户单击一个文本框到下一个文本框,则编辑命令将再次触发,对上一个文本框所做的更改将恢复为其原始值.
有关如何解决此问题的任何建议?
或者,有没有更好的方法来实现这一目标?
编辑:这是通过添加检查解决row.RowState.HasFlag( DataControlRowState.Edit ).见下面的代码:
protected override void Render( System.Web.UI.HtmlTextWriter writer )
{
foreach( GridViewRow row in gvwOrderItems.Rows )
{
if( row.RowType == DataControlRowType.DataRow &&
row.RowState.HasFlag( DataControlRowState.Edit ) == false )
{
// enable click on row to enter edit mode
row.Attributes["onclick"] =
ClientScript.GetPostBackClientHyperlink( gvwOrderItems, "Edit$" + row.DataItemIndex, true );
}
}
base.Render( writer );
}
Run Code Online (Sandbox Code Playgroud) 我有一个更新一行的函数:
CREATE OR REPLACE FUNCTION MyTable_UPDATE
(
_ID int,
_Description text
)
RETURNS bool
AS $$
DECLARE _OK boolean;
BEGIN
_OK := false;
UPDATE mytable SET
Description = _Description
WHERE ID = _ID;
_OK := true;
RETURN _OK;
END;
$$ LANGUAGE plpgsql STRICT;
Run Code Online (Sandbox Code Playgroud)
当我用描述中的值调用它时,它可以工作:
select MyTable_UPDATE(9, 'testing 123');
Run Code Online (Sandbox Code Playgroud)
如果我用空值调用它,它不会更新,没有错误消息,也没有返回值:
select MyTable_UPDATE(9, null);
Run Code Online (Sandbox Code Playgroud)
如果我运行更新查询来设置 description = null,它会起作用:
UPDATE mytable SET
Description = null
WHERE ID = 9;
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个包含两列的标题,这些标题将填充到父容器的高度。我正在使用display:flex响应式布局。当我将标题设置为固定高度时,其他两个子div与标题之间存在间隙。
div#container {
padding:20px;
background:#F1F1F1;
display: flex;
flex-flow:row wrap;
height:540px;
}
.header{width:100%; height:40px; background:#ccc;}
.content {
width:150px;
background:#ddd;
padding:10px;
margin-left: 10px;
}
Run Code Online (Sandbox Code Playgroud)
编辑
The duplicate question is a nice description of the flex properties, but I'm not seeing an example like this addressed in it.
If the height:40px is removed from the header, the header div will stretch down to the other divs. When the header height is specified, a gap exists.